Quest creation guide
To install this addon to your server just unzip all folders to your
garrysmod/addons folder. Note, this addon will contain two folders
mcd_ui which both must be placed inside your addon folder. If you already have
mcd_ui addon, you can skip or update the files, as it was downloaded with my other products.
Content will download automatically, but here is a workshop addon if you need it https://steamcommunity.com/sharedfiles/filedetails/?id=2486994157
The main configuration can be done through the game inside Administration Menu. To open Administration Menu click on the MQS icon in the context menu, type the
mqs_editor console command or
/mqs chat command. Only users with superadmin privileges can access the Administration Menu and server settings.
Creating a new quest
To create a new quest navigate to the Quests tab and click on Add new quest button. If you started new quest creation earlier, you will have an option to load autosave or starting from scratch. Autosave can help you if you accidentally closed the menu or crashed, but we recommend submitting the quest after basic setup and then edit it, so you won't lose progress.
Quest main options
In the Main options tab, you can set up basic rules for the quest. Here is a description of all parameters:
Name - Displayed quest name, will be shown to players inside all available quests
ID - Must be unique for each quest. Used to store data, access quest from the other addons, and can help you navigate through quests.
Category - If you have enabled the "Sort by category" feature in the settings, you can type a category for the quest and it will be sorted in the main menu regarding to that category.
Description - Will be displayed to players inside all available quests and on the screen when the player starts the quest. We recommend keeping it simple but informative.
Complete message - Will be displayed to players on the screen when the quest is finished. Can be useful to show the player which reward did he get.
Do time - time in seconds for the quests will fail or succeed the quest depending on the next parameter. Leaving this parameter black will disable this function and the player will play quests for as long as he wants
Fail/Succeed quest on time end - This parameter will affect quest only if Do time is set. Failing quest on the time end can solve problems with players going AFK while playing important quests. Succeeding quest on time end can be useful with looped quests, especially for MilitaryRP quests.
Allow to abandon quest manually - Will allow players to press a key and stop the quest any time. When the quest is stopped it will count as a failed quest. Also will display a notification for the players
Loop quest tasks - Can be enabled only if Do time is set. Will make your quests repeated after the player completes all tasks. Can be used in many cases, especially as a bus driver, city service, military/police patrol, and more. If Fail quest on time end parameter is set, quest Do time will be reset on each loop.
Reward player on each loop - will reward the player on each quest loop complete if you set up quests rewards (more about rewards later). If you turn this option off, the player will get his reward only when he manually stops looped quest or Succeed quest on time end option is set.
Fail quest on player death - will fail the quest if the player dies.
Publick cooldown timer - If set the cooldown timer will effect everyone on the server even if player didn't play the quest at all, will reset on server restart. If not set, cooldown will be individually for each player, and the timer data will be stored and will not reset on server restart. This will allow to make a daily/weekly and etc. quests for players.
Cooldown on finish/fail - Cooldown before any other player can start the quest if it was finished or failed
Players limit for the quest - Here you can set how many players can play the same quest at the same time. If you have a lot of events happening on the quests, such as car/NPC/entity spawn, we recommend setting the limit only for 1 player.
Players amount needed to start - Here you can set how many players will be needed online on the server before anyone can start the quest.
Setup team limits - Same as the previous parameter, but you can choose an online request for each team.
Disable quest replay - Will disable replaying quest to a player if he already completed the quests. Can be useful for story-driven quests.
Require completed quest - Will require another completed quest for a player before he can start this one. Can be useful for story-driven quests.
Team whitelist - Set a team whitelist. Only whitelisted teams will have access to this quest.
The whitelist is a blacklist - will turn the whitelist to the blacklist. All teams from the whitelist will not have access to this quest.
Enabling quest or linking it to an NPC - this option will variate depending on your server settings. Enabling this option will activate the quest and make it playable to all players, otherwise, this quest can be only play-tested by admins. If you assign this quest to an NPC, it can be played by a player only through that NPC. We recommend doing that only after you playtested the quest.
Set custom icon - Allows setting a custom icon for the quest. The icon will be displayed instead of an information icon. To set the icon enter the icon URL.
Note. Icon must be in a png format and for a better look must be square. 68 by 68 pixels is a recommended size.
Setup quest blacklist - here you can select a list of quests that will be disabled for the player if he played the current quest at least one time. This can help create storylines with choice.
To add a new objective press om Add new objective button. To edit an objective click on it. Note, objectives will be played in order from the first to the last one. If you will need to change the objectives order you can right-click on an objective and choose one of the options - Move objective up or down in order, or swap objective with another. By choosing the Swap option target objective will be highlighted, by clicking on the other objective you will swap their places in play order.
By choosing the Edit mode option you can select multiple objectives and move there order. To select multiple objective, left-click on 2 objectives, it will select all objectives in between that 2. To deselect just click on any selected objective (selected objectives are highlighted). To move selected objectives right-click on one objective with the order id you nee, and select a Move option.
To remove the objective chose the Remove option from the dropdown menu when you right-click it. To duplicate the objective chose the Duplicate option, this will also duplicate all events for the objective. To edit objective parameters and set up events for each objective just click on it.
The objective description is a requirement for each objective type. The description will be displayed to a player on the hud and must contain information regarding the current objective for better information
Here is the list of objective types and specifications for them:
Will create NPC assassination objective. Objective settings will be:
Allow other players to kill NPCs - By enabling this option you will allow any players to kill quest NPCs, otherwise, only the player who started the quest will be able to kill
Show entities location to the player - By enabling this option player will see markers on the NPCs within the distance you set by the next parameter.
Min. distance to NPCs - Here you set how far from an NPCs player must be, to see the marker.
Map marker - an icon that will be displayed on the HUD indicating the NPC.
Note that, the Spawn NPC event is required to be set for this objective. Spawn NPC event must have NPC is an objective target option enabled. You can create only one target NPC and also some non-target NPCs which will act as decoys or protection for the target. The objective will succeed only if you kill the target NPC, other NPC will remain even if the objective succeeded. If NPC is an objective target option is enabled for multiple NPCs you will need to kill all of them to continue.
Kill random target
Will create objective with a goal to kill seted amount of NPCs or players. Objective settings will be:
Target type - NPC or a Player. In you select NPCs, the target can be any NPCs that will has the same class as in the next setting, even NPCs spawned randomly on the map, but you also can spawn them using an event. Is target type is a player and you set team filter in the next option, make sure that you did setup team limits in quest main options.
NPC class or Player team - Here you nee to enter NPC class name or a player team name. If not set, any NPC or player will progress this objective.
Amount if targets to kill - Amount of kills needed to complete the objective.
Move to point
Will create a simple objective, where you need to reach a point on the map. Objective settings will be:
Distance to point - where you can set how close the player must be to the objective point to continue. A lower number means the player must be closer to the point.
Move point - point on the map. Can be set to your local position, aiming position on copy position from the entity you are looking at.
Map marker - an icon that will be displayed on the HUD.
Mark area - will mark the area where you must enter. Like here:
Ignore quest vehicle - this option is useful only if you have a quest vehicle spawned earlier. By checking it you will be able to enter the area and continue the quest without your vehicle. In another case, the quest will continue only if you enter the area inside your quest vehicle.
Same as the Move to point objective but you need to exit an area on the map. Objective settings will be:
Distance to point - where you can set how far away from leave point the player must travel to continue. A lower number means the player must travel a shorter distance.
Leave point - point on the map. Can be set to your local position, aiming position on copy position from the entity you are looking at.
Mark area - will mark the area which you must leave. Same as the Move to point objective
Ignore quest vehicle - this option is useful only if you have a quest vehicle spawned earlier. Same as the Move to point objective
Simple timer which player needs to wait before the next objective starts.
Time to wait - Time in seconds player needs to wait.
Show the timer to player - will show how much time you need to wait near the objective description.
Player must stay in area - an area size that will be linked to the timer if you enter a value. Leave the values blank to disable this and the following option. If you enter a value, the player will need to stay inside the given area, if he leaves the area before the timer runs out, the quest will be failed.
Area position - position of the area on the map. Can be set to your local position, aiming position on copy position from the entity you are looking at.
Mark area - will mark the area where you must stay. Same as the Move to point objective
Ignore quest vehicle - this option is useful only if you have a quest vehicle spawned earlier. Same as the Move to point objective
Collect quest ents
In this objective, you will need to collect quest entities by pressing the use button on them. Will require Spawn quest entity event. More entities spawned via Spawn quest entity event - more of them you will need to collect before you can continue the quest.
Show entities location to the player - will show distance in meters to the closest entity neer the objective description.
Search area size - Size of the area that will be marked on the map so the player can easily navigate to the collectible entities.
Search area position - position of the area on the map. Can be set to your local position, aiming position on copy position from the entity you are looking at.
Mark area - will mark the search area. Same as the Move to point objective
Talk to NPC
This objective will appear only if you have Simple NPCs addon installed. This objective can trigger premade dialog from Simple NPC and the quest can be continued only if the answer in the dialogue has an MQS Continue mark. More about it in the integration guide.
Select an NPC - Here you can select one of the available NPCs from the map.
Dialog ID to open - The ID of the premade dialog line that will be opened if you speak to the NPC.
Map marker - an icon that will be displayed on the HUD and mark the NPC.
Events are a list of actions that will happen when you start an objective. This may help you to change your quest environment dynamically as the player progress through the quest. You can remove or duplicate an event if you right-click them.
This event will spawn any entity you want. If you need to spawn a prop enter prop_physics as the entity class. You can first spawn an entity, customize it and then just use Copy buttons to use all information from the entity.
Spawn quest entity
This event will spawn an entity that you will need to collect for the Collect quest ents objective. The same method can be applied to set up an entity as for the Spawn entity event. You can also choose if the entity will be arcade-styled or just look like a normal entity. Pointer above the entity is optional too.
By adding a number inside Hold [E] key field you will add a delay in seconds before the player will pick up the entity. The delay is in seconds.
Manage do time
Basically, you can reset do time to quest's original time or just add some more time to the base timer. This can be useful for time trial quests.
Gives the player a weapon. Just enter the weapon class you want to give.
Strip a weapon from the player. Just enter the weapon class you want to strip. Can be useful if you want to give the player a weapon only for a few objectives
Gives ammo to the player. You can choose the amount of ammo to give and find ammo type from the list. The list will have all ammo used on the server.
This event will spawn an NPC which can be hostile or friendly to the player. NPCs spawned this way will ignore damage from other players as well as players themself. To copy the NPC class name, go to the Q menu and right-click on the NPC you want to use, and choose the Copy to clipboard option. Then paste the class to the MQS menu. You can leave the NPC model blank and it will use the default model for this class or change it to a custom model by entering the path to the model or copying it from a spawned NPC.
Note if you use this event on a Kill NPC objective you will need to set at least one NPC to be the objective target. You can use multiple NPCs as an objective target, this way player will need to kill all the NPCs marked as an objective targets. You also can create more NPCs without this mark to act as a distraction or protection for the target NPCs.
Remove all entities
Will remove all entities created by the Spawn entity event. Can be useful to keep fewer entities if you have a long quest.
Will set a custom amount of HP to the player or can restore full HP.
Will set a custom amount of armor to the player from 0 to 255.
Will create a vehicle tide to the quests and convert it to the vehicle-based quest. Supports default vehicles, simfphys vehicles, and LFS based vehicles. If the vehicles will be somehow removed or destroyed, the quest will fail. A small vehicle setup guide:
To copy the vehicle class name, go to the Q menu and right-click on the vehicle you want to use, and choose the Copy to clipboard option. Then paste the class to the MQS menu and choose vehicle type. To set a spawn position we recommend spawn and place the vehicle where you need it to spawn and then copying its position. To avoid sticking the vehicle in the ground place it slightly above the ground.
Will remove quest vehicle created by the Spawn vehicle event with a delay you set.
This allows playing sound/music via a weblink or from Gmod content. Music will automatically be stopped on quest end/fail. If you want to stop music on certain objectives, start this event again with no link or path.
Will teleport player to the given location, as simple as that.
To give the player a reward after finishing a quest you need to enable a reward in the left column, and then edit reward properties in the right one.
For now, you can give the player these rewards:
- Give special weapon
- Give DarkRP money - only for DarkRP gamemode
- Give Helix money - only for Helix based gamemodes
- Leveling System - XP reward if you have this addon installed
- GlorifiedLeveling - XP and LvL reward if you have this addon installed
- Pointshop and Pointshop 2 - Points/Item reward if you have one of these addons installed
To finish quest setup you will need to click Submit quest button, and if it is active or assigned to the NPC it will be available to play for all players.
If you want to transfer and edit a quest from another map or you just need a copy of a quest you made earlier, enter the Copy data menu. The left column will contain all current quests and the right one will contain quests from the map you enter to the search field.