Coder Social home page Coder Social logo

missions's Introduction

Minetest mission mod (missions)

Archived!

This mod is now in archive mode, for a full replacement with more features use the "epic" mod: https://github.com/damocles-minetest/epic (or ping me if you want to fork and maintain this)

Minetest mod for in-game mission creation (for players and admins) Adds a mission block to create missions and a mission-wand to mark positions and chests

Obligatory screenshot

Features:

  • In-game mission builder
  • Craftable mission-block and wand
  • Create epic quests or mazes
  • Missions can span multiple days, even weeks
  • Running missions persist across login/logout and server-restart

Supported mission-steps:

  • Build (place any nodes)
  • Build specific nodes (e.g: Stone)
  • Dig nodes (any)
  • Dig specific nodes (e.g: Meseblock)
  • Put items in Chest at position (e.g: 99xStone)
  • Waypoint (hidden and visible in hud)
  • Teleport player to position (requires the missions_teleport priv)
  • Reward player with items from a chest
  • Reward player with items (mission-build must have the give priv)
  • Message (show a message with a title)
  • Grant priviliege (requires the priv privilege)

Extended mission-steps (dependent on other mods):

  • Spawn a mob at position (requires the missions_mobs priv)
  • Check xp (if xp mod enabled)
  • Give xp (if xp mod enabled and privs available)

Install

  • Unzip/Clone it to your worldmods folder

Crafting

Mission-Block:

Mission wand:

Note: Used (position and chest) wands can be mixed back to a plain wand again

Manual

Create missions (in-game)

Craft yourself a mission wand (missions:wand) and mark your waypoints and chests with it:

Give them a name so you find them later in the inventory. The wand converts either to a position wand or a chest wand, depending on what you are pointing it to.

  • Position wand: Marks waypoints for a mission
  • Chest wand: Marks chests for taking or putting inventory (default and morechests supported for now)

Properly named chest-wand:

When you are finished marking the places and chests you want in your mission you can craft a mission-block (missions:mission) and place it where you want the mission to start. The Mission block can only be dug from the owner or an admin with protector_bypass privilege.

Rightclick on the mission to open the editor dialog:

On the left you can add and order the mission steps. On the right you can edit its name, description and the time allowed to finish it.

Now click on add to create your first mission step:

Choose your first step in the mission:

  • Could be a waypoint to which the player has to go
  • Or a chest which has to be filled with a given amount and type of item
  • Or a simple welcome message to brief the player

Example of a step in which the player has to place 99 stones in the chest

This is just an example, the player could take out the items as soon as the step or the mission is finished. In reality you would use a dropbox from the morechests mod or inject the items into some tubes with mesecons and pipeworks.

Example of a waypoint step:

The visibility of the waypoint can be toggled if you want the player to search for it (after you gave him some hints of course)

Example of a Message step:

The player has to click the message away in order to execute the next step

An example of a finished mission with waypoints and messages:

now you can click on Save and Validate to check if the mission is valid:

  • Enough items to give the player as reward
  • Enough room in chests for the player to put in

An example of an invalid mission:

The mission will be validated every time a player wants to start it.

Of course a reward upon finishing the mission would always be a good idea... For this, create a Reward from Chest step and place the marked wand to the chest in the target field. The chest has to contain the items in order to start the mission.

Play missions

To play a mission do a rightclick on a mission-block or as the owner of it click on User in the edit dialog:

After carefully reading the text (or not at all) you can click Start to accept the mission. Only one mission can be active at the same time.

After the start the configured wapyoints will guide you through the mission (or not if so configured)

For item collection a status-text on the upper right will tell you how much you have to collect:

An example message from the mission-creator to the player:

Create more mission-steps (specs)

See the existing steps in the steps folder for some guidelines.

Depends

Pull requests / bugs

I'm happy for any bug reports or pull requests (code and textures)

missions's People

Contributors

buckaroobanzay avatar int-ua avatar naturefreshmilk avatar snowyu avatar swissalps avatar thomasrudin avatar woosteruk avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

missions's Issues

Auto bones mission

Suggestion: use this mod for automatically creating a mission on player death with a waypoint on bones.

ERROR

2023-01-24 21:43:00: ERROR[Main]: ModError: Failed to load and run script from F:\TW\minetest-5.6.1-win64\bin\..\mods\missions\init.lua:
2023-01-24 21:43:00: ERROR[Main]: Number of registerable nodes (32768) exceeded (missions:mission)
2023-01-24 21:43:00: ERROR[Main]: stack traceback:
2023-01-24 21:43:00: ERROR[Main]: 	[C]: in function 'register_item_raw'
2023-01-24 21:43:00: ERROR[Main]: 	F:\TW\minetest-5.6.1-win64\bin\..\builtin\game\register.lua:184: in function 'register_item'
2023-01-24 21:43:00: ERROR[Main]: 	F:\TW\minetest-5.6.1-win64\bin\..\builtin\game\register.lua:210: in function 'register_node'
2023-01-24 21:43:00: ERROR[Main]: 	F:\TW\minetest-5.6.1-win64\bin\..\mods\missions/block.lua:2: in main chunk
2023-01-24 21:43:00: ERROR[Main]: 	[C]: in function 'dofile'
2023-01-24 21:43:00: ERROR[Main]: 	F:\TW\minetest-5.6.1-win64\bin\..\mods\missions\init.lua:40: in main chunk

crash on high xp value

2021-02-21 19:02:45: ERROR[Main]: ServerError: AsyncErr: environment_Step: Runtime error from mod 'missions' in callback environment_Step(): /data/world//worldmods/missions/steps/checkxp.lua:43: attempt to compare nil with number
2021-02-21 19:02:45: ERROR[Main]: stack traceback:
2021-02-21 19:02:45: ERROR[Main]: 	/data/world//worldmods/missions/steps/checkxp.lua:43: in function 'on_step_enter'
2021-02-21 19:02:45: ERROR[Main]: 	/data/world//worldmods/missions/executor.lua:112: in function 'update_mission'
2021-02-21 19:02:45: ERROR[Main]: 	/data/world//worldmods/missions/executor.lua:192: in function 'func'
2021-02-21 19:02:45: ERROR[Main]: 	...ocal/share/minetest/builtin/profiler/instrumentation.lua:106: in function 'globalstep'
2021-02-21 19:02:45: ERROR[Main]: 	/data/world//worldmods/monitoring/builtin/globalstep.lua:32: in function </data/world//worldmods/monitoring/builtin/globalstep.lua:24>
2021-02-21 19:02:45: ERROR[Main]: 	/usr/local/share/minetest/builtin/game/register.lua:429: in function </usr/local/share/minetest/builtin/game/register.lua:413>
2021-02-21 19:02:45: ERROR[Main]: stack traceback:

Mission chest unlocked

Any one can look into and dig the mission chest. Perhaps it's intended to act as a regular chest and not a locked one, but it seems to me that only the owner should be able to see its contents.

Raw proposal

Hi, Banzai!

I thought about the step editor for your Mission Mod. Here's what I came up with...

[STEP EDITOR]:

  1. Trigger A Node To Teleport

Instead of just automatically teleport to an area, players should trigger a block THEN teleport them into an area. Examples of these blocks are:
~ Button
~ Switch
~ Pressure Plate
Not sure how the coding will work, tho. Maybe like how you programmed the mission wand to the chest.

  1. Time Trigger

Players should wait for a given amount of seconds before proceeding to the next step.

  1. "Mission Failed" Trigger

An if;then statement. If players do this action, (e.g. tap the wrong button), then mission is over.

  1. Kill Specific Mob

Again, not sure how you'll code this (p.s. I got very minimal knowledge in coding). Player should kill a specific mob set up by the Mission Block in order to trigger next step.
Would be nice if this specific mob will be unique, like kill just this one specific Dirt Monster out of all these other 5 Dirt Monster. (I doubt this will work, since there isn't a unique variable registered per spawn mob, but I'll let you do the magic :D )

  1. DONT Kill Specific Mob

The other way around for suggestion #4. This time, players should not kill this mob in a given amount of time OR until the end of the entire mission OR when countered by the Kill Specific Mob suggestion.

  1. A Message Board

I haven't really observed this much. I think players tend to forget what they should be doing next in their mission run. For example, in my Mission I wanted the player to investigate around the tower instead of just guiding them to the dtragon thru waypoints. This way, it would immerse themselves more in the story. I hope you can add like a mission window somewhere in screen with the title of the next step plus description (dunno how mobile users would look like).

  1. Review A Pop Up Window

There is the existing option in Step Editor that lets the mission box open a window for a message. But as soon as the player closes it, they can't open it anymore. Maybe add a button in the players mission button (in inventory) and add a Mission Log for received messages?


That's about it. I really hope most of these can be coded! It would really be more fun and flexible to configure this mod. I anticipate for your reply soon!

Keep up the good work, Banzai :D You've been the most responsive admin I have encountered.

Warden.

Allow use of foreign chests

Add a type of "wand" to mark the target chest and allow that wand to be placed in the mission-chest instead of the misused book-reference

HUD cleanup

Cleanup hud stuff, move to edge of screen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.