← README
Content pack guide
aka how to use JSON API for creating content packs with your custom quests.
Introduction
What is quest framework?
Quest framework is a "core" mod which provides a tools for work with quests in StardewValley. In the JSON api you can do these things:
- Create custom quests
- Handle quests with predefined hooks
Define quest
Prepare content pack
For more info about SMAPI content packs see How to create content pack
Create your manifest.json
file which must contains these minimum contents:
{
"Name": "Your Project Name",
"Author": "your name",
"Version": "1.0.0",
"Description": "One or two sentences about the mod.",
"UniqueID": "YourName.YourProjectName",
"MinimumApiVersion": "3.6.0",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "PurrplingCat.QuestFramework", // Quest Framework unique id must be here
"MinimumVersion": "1.2.0" // optional
}
}
Then create file quests.json
and follow next instructions.
The content pack format
Your quests.json
has this format:
{
"Format": "1.0", // this is required
"Quests": [
// (optional) quests are defined here
],
"Offers": [
// (optional) quest offers are defined here
],
"CustomBoards": [
// (optional) define your custom quest or special order boards here
],
"CustomDropBoxes": [
// (optional) define your custom drop boxes for your special orders here
],
}
Quest basics
In the Quests
section you can define one ore more custom quests. Quest definition has these fields:
| Field | Required? | Description |
|---|---|---|
| Name | required | string Name (UID) of your quest (this never shows to player) |
| Type | required | string Vanilla SDV quest type (see quest type) |
| CustomTypeId | int Custom Quest type id (see custom quest types in advanced API). Can be handled by any other mod. |
|
| Title | required | string Quest title in the quest log |
| Description | string Quest description |
|
| Objective | required | string Quest objective |
| NextQuests | string[] One of more next quests which will be added to player's quest log when this quest is completed. |
|
| DaysLeft | int If this field is filled or is greater than 0, this quest is marked as daily and limited for specified number of days here. |
|
| Reward | int|string Reward in SDV currency "golds". If this field is not defined or has value 0 , then player will receive no money reward. |
|
| RewardType | RewardType Type of reward for player. (default: Money) |
|
| RewardAmount | int Amount of reward items. Only for Object reward type. |
|
| RewardDescription | string Reward description |
|
| Cancelable | boolean Can player cancel this quest? |
|
| ReactionText | string NPC's reaction text when you complete this quest (only for quests which interacts with NPCs) |
|
| Trigger | string Completion trigger (see quest types for more info) Supports JSON Assets |
|
| Texture | string Path to PNG file with custom background texture for this quest in quest log menu. Path is relative to your content pack root directory. |
|
| Colors | QuestLogColors Settings of font colors for this quest in the quest log menu. |
|
| FriendshipGain | {[string]: int} Additional friendship points for enumarated NPCs which player gains after this quest was completed. |
|
| Hooks | Hook[] Quest hooks (see hooks for more info) |
|
| ConversationTopic | ConversationTopic Add or remove conversation topic (see conversation topic for more info) |
|
| AddMailOnComplete | Receive the mail(s) by player after quest is completed. Supported multiple letter names. See Completion Mails for more details | |
| RemoveMailOnComplete | Remove already received mail from player (clear mail flag) after quest is completed. Supported multiple letter names. See Completion Mails for more details |
Example
{
"Format": "1.0",
"Quests": [
{
"Name": "abigail_amethyst", // No id needed, will be automatically generated
"Type": "ItemDelivery", // Vanilla quest type
"Title": "The purple lunch",
"Description": "Abigail are very hungry. She wants to eat something special from mines.",
"Objective": "Bring amethyst to Abigail",
"DaysLeft": 5, // If player don't complete this quest until 5 days, this quest will be removed from quest log automatically without completion
"Reward": 300, // 300g
"RewardType": "Money",
"Cancelable": true, // This quest can be cancelled by player
"Trigger": "Abigail 66", // Bring amethyst to Abby
"ReactionText": "Oh, it's looks delicious. I am really hungry.",
"FriendshipGain": {
"Abigail": 100 // Gain 100 additional friendship points when this quest was completed
}
}
]
}
Quest types
This part describes only vanilla StardewValley quest types existing in the game. If you want to define custom quests, see the Advanced API guide or Hooks bellow. For more information about SDV quests see the Quests wiki and Modding quest data
Basic
The basic SDV quest which is handled properly by the game (this is hardcoded in vanilla game).
Trigger: No trigger for this quest type
Building
Build a building quest. Hardcoded in SDV, but you can define which building type must player build for complete this quest (in the Trigger
property)
Trigger: Building type name (like Coop
). For available building types see Data/Blueprints
SDV content resource.
Crafting
Craft a specified item.
Trigger: <int:item_id> <boolean:is_bigcraftable>
(like 13 true
for craft furance to complete this quest).
See the Data/ObjectInformation
game resource for available items.
ItemDelivery
Deliver specified item to specified NPC.
Trigger: <string:NPC_name> <int:object_id> [<int:count>]
like Abigail 66
for bring Amethyst to Abigail, Abigail 66 5
for bring 5 pieces of Amethyst to Abigail; or Willy {{ja:Fish Oil}}
if you want to use JsonAssets item (JsonAssets required for use JA token)
See the Data/ObjectInformation
game resource for available items.
This quest type accepts ReactionText
.
ItemHarvest
Harvest or pick specific count of specific items.
Trigger: <int:item_id> <int:count>
like 334 3
for harvest 3 pieces of copper bar to complete this quest.
See the Data/ObjectInformation
game resource for available items.
Location
Go to specified location.
Trigger: Location name like Town
for complete this quest when player enters Town.
LostItem
Find a lost item and deliver it to an NPC.
Trigger: <string:NPC_name> <int:item_id> <string:Location_name> <int:TileX> <int:TileY>
like Robin 788 Forest 110 81
bring Robin Axe to robin which are spawned in Forest on tile location X=110; Y=81
.
See the Data/ObjectInformation
game resource for available items.
This quest type accepts ReactionText
.
Monster
Slay a specified count of specified monster.
Trigger: <string:Monster_name> <int:count> [<string:talkWithNpc>]
(monster name can't contain spaces. Replace spaces with _
in monster name) like Green_Slime 10
slay 10 Green slimes to complete this quest. Bat 5 Lewis
means slay five bats and then talk with Lewis to complete this quest.
SecretLostItem
Same usage as LostItem
Custom
Custom quest type. You can specify field CustomTypeId
for more explicit which custom quest type. In JSON api you can use hooks to create custom quest handling.
You can define custom quest via setup value Custom
into field Type
or in format <modUID>/<QuestTypeName>
for custom quests defined by other mods which exposes their quest types for content packs.
Trigger: Custom defined. In JSON api use hooks instead for handle your pure JSON custom quest. If you target a custom quest type defined by any other mod in your JSON content pack, follow instructions of the source mod of this quest type.
Needs more quest types?
The Quest Essentials offers some new custom types for Quest Framework, like multi-staged quests, earn money quest type and etc.
Rewards
There are supported some reward types for quests. You can specify reward type in field RewardType
in your quest definition. Reward is paid to player after quest is completed by clicking the reward in questlog menu (in quest details for completed quest)
| Reward type | Description |
|---|---|
| Money | Amount of money player earn by complete this quest |
| Object | Which item player gets by complete this quest. You can specify your item by name (JSON assets items supported) or via their id (integer). Also you can specify amount (stack) of this item in field RewardAmount |
| Weapon | Which weapon player gets by complete this quest. You can specify your weapon by name (JSON assets items supported) or via their id (integer) |
Examples
{
"Format": "1.0",
"Quests": [
{
"Name": "abigail_amethyst1",
"Type": "ItemDelivery",
"Title": "The purple lunch",
"Description": "Abigail are very hungry. She wants to eat something special from mines.",
"Objective": "Bring amethyst to Abigail",
"DaysLeft": 5,
"Reward": "Chocolate Cake",
"RewardType": "Object"
"RewardAmount": 2, // Player gets two chocolate cakes after complete this quest
"Cancelable": true, // This quest can be cancelled by player
"Trigger": "Abigail 66", // Bring amethyst to Abby
"ReactionText": "Oh, it's looks delicious. I am really hungry."
},
{
"Name": "abigail_amethyst2",
"Type": "ItemDelivery",
"Title": "The purple lunch again",
"Description": "Abigail are very hungry. She wants to eat something special from mines.",
"Objective": "Bring amethyst to Abigail",
"DaysLeft": 3,
"Reward": "Emerald", // Reward is 1x emerald for this quest
"RewardType": "Object"
"Cancelable": true, // This quest can be cancelled by player
"Trigger": "Abigail 66", // Bring amethyst to Abby
"ReactionText": "Oh, it's looks delicious. I am really hungry."
},
{
"Name": "clint_copperbar",
"Type": "ItemDelivery",
"Title": "Clint needs a copper bar",
"Description": "Clint asked you if you can bring him a copper bar.",
"Objective": "Bring a copperbar to Clint",
"Reward": 320, // Reward is 320g
"RewardType": "Money"
"Cancelable": true,
"Trigger": "Clint 334", // Bring copper bar to Clint
"ReactionText": "Thanks."
},
{
"Name": "marlon_slay_bats",
"Type": "Monster",
"Title": "Dangerous mine bats",
"Description": "Marlon wants help with slay dangerous bats which threaten villagers in the mountains every night",
"Objective": "Slay 10 bats",
"DaysLeft": 2,
"Reward": "Pirate's Sword", // Pirate's Sword is an reward for this quest
"RewardType": "Weapon"
"Cancelable": true,
"Trigger": "Bat 10", // Kill 10 bats
}
]
}
Completion mails
By adding fields AddMailOnComplete
and/or RemoveMailOnComplete
you can specify which mails will player receive after quest is completed, or which already received mail will be forgotten by player.
Add mail on complete is usefull for controll your custom events based on quests or for some other purposes. You can use mail name of received mail with Content Patcher in their condition system for control loading assets in dependency on quest completion and etc. You can specify multiple mails and with some flags. The format of a mail entry is:
<letterId> [noletter|tomorrow|everyone]
noletter
mail is received immediatelly without letter in farmer's mailboxtomorrow
mail will be received at morning (next day)everyone
mail will be received by farmer and by all farmhands recognized in multiplayer game (for single player is the same behaviour as without this flag)
You can combine all of these flags per letter record. For the RemoveMailOnComplete
you can use only the flag everyone
. Mails to remove are removed immediatelly after complete quest, other flags are ignored and unread mails in the mailbox are not affected.
{
"Format": "1.0",
"Quests": [
{
"Name": "abigail_amethyst1",
"Type": "ItemDelivery",
"Title": "The purple lunch",
"Description": "Abigail are very hungry. She wants to eat something special from mines.",
"Objective": "Bring amethyst to Abigail",
"DaysLeft": 5,
"Reward": "Chocolate Cake",
"RewardType": "Object"
"RewardAmount": 2, // Player gets two chocolate cakes after complete this quest
"Cancelable": true, // This quest can be cancelled by player
"Trigger": "Abigail 66", // Bring amethyst to Abby
"ReactionText": "Oh, it's looks delicious. I am really hungry."
"AddMailOnComplete:" "happy_abby noletter, abby_eats_rocks tomorrow everyone" // two mails will be received after this quest is completed
}
]
}
Colors & Texture
Be different! You can specify background texture of quest details window in quest log menu. Just specify an relative path to your content pack root in field Texture
for your quest. Also you can customize text colors for this quest with field Colors
.
| Color property | Type | Desription |
|---|---|---|
| TitleColor | int |
Color of quest title. |
| TextColor | int |
Standard quest color (for decription) |
| ObjectiveColor | int |
Color of quest objective |
Available colors
| Color id | Description |
|---|---|
| 0 | Black |
| 1 | Sky Blue |
| 2 | Red |
| 3 | Purple |
| 4 | White |
| 5 | Orange Red |
| 6 | Lime Green |
| 7 | Cyan |
| 8 | Grey |
Example
{
"Format": "1.0",
"Quests": [
{
"Name": "abigail_amethyst", // No id needed, will be automatically generated
"Type": "ItemDelivery", // Vanilla quest type
"Title": "%i18n:abigail_amethyst.title",
"Description": "Abigail is very hungry. She wants to eat something special from mines.",
"Objective": "Bring amethyst to Abigail",
"DaysLeft": 10,
"Reward": 1000,
"RewardType": "Money",
"Cancelable": true,
"Trigger": "Abigail 66", // Bring amethyst to Abby
"ReactionText": "Oh, this looks so delicious. I am really hungry, thank you, @!$h",
"CustomField": "%i18n:custom.field",
"Texture": "assets/wizardQuest.png",
"Colors": {
"TitleColor": 4,
"TextColor": 4,
"ObjectiveColor": 1
}
}
]
}
Conversation topic
Conversation topic can make the character speak of certain dialogue when the specific conversation topic is active. Please refer to the conversation topic explanation on the wiki before using this feature. With this field you can make NPCs give dialogue when a quest is accepted, cancelled, and or completed. The respective dialogue itself must be added using Content patcher
Options
| Valid field | Example value | Description |
|---|---|---|
| AddWhenQuestAccepted | AbigailLookingForward 2 CarolineConcerned 5 |
The keys of the conversation topic to be added and its duration after a quest is accepted. In the example after the quest is accepted it will activate two conversation topics: AbigailLookingForward for 2 days and CarolineConcerned for 5 days. |
| AddWhenQuestRemoved | AbigailDisappointed 3 |
The keys of the conversation topic to be added and its duration after a quest is removed. In the example after the quest is removed it will activate a conversation topic: AbigailDisappointed for 3 days. |
| AddWhenQuestCompleted | AbigailSeenEatingRock 10 AbigailHappier 2 |
The keys of the conversation topic to be added and its duration after a quest is completed. In the example after the quest is completed it will activate two conversation topics: AbigailDisappointed for 3 days and AbigailHappier 2. |
| RemoveWhenQuestAccepted | AbigailLookingForward |
The key of the conversation topic to be removed. The conversation topic will end before the set when the quest is accepted. In the example after the quest is acappted it will remove the conversation topics: AbigailLookingForward. |
| RemoveWhenQuestRemoved | AbigailLookingForward |
The key of the conversation topic to be removed. The conversation topic will end before the set when the quest is removed. |
| RemoveWhenQuestCompleted | AbigailLookingForward |
The key of the conversation topic to be removed. The conversation topic will end before the set when the quest is completed. |
Example
{
"Format": "1.0",
"Quests": [
{
"Name": "abigail_amethyst", // No id needed, will be automatically generated
"Type": "ItemDelivery", // Vanilla quest type
"Title": "The purple lunch",
"Description": "Abigail are very hungry. She wants to eat something special from mines.",
"Objective": "Bring amethyst to Abigail",
"DaysLeft": 5, // If player don't complete this quest until 5 days, this quest will be removed from quest log automatically without completion
"Reward": 300, // 300g
"Cancelable": true, // This quest can be cancelled by player
"Trigger": "Abigail 66", // Bring amethyst to Abby
"ReactionText": "Oh, it's looks delicious. I am really hungry.",
"ConversationTopic": {
"AddWhenQuestAccepted": "add_abigail_amethyst_accepted 7",
"AddWhenQuestRemoved": "add_abigail_amethyst_removed 7",
"AddWhenQuestCompleted": "add_abigail_amethyst_completed 7",
"RemoveWhenQuestAccepted":"remove_abigail_amethyst_accepted",
"RemoveWhenQuestRemoved": "remove_abigail_amethyst_removed",
"RemoveWhenQuestCompleted": "remove_abigail_amethyst_completed",
// Use only what is needed. The field explain itself.
// Any string is fine as long as it is unique. You'll need to add the same key to respective character dialogue using content patcher.
}
}
]
}
Common global conditions
These global conditions can be used in hooks or in the quest offers.
| Condition name | Example value | Description |
|---|---|---|
| Weather | sunny |
Current weather. Allowed values: rainy , snowy , stormy , cloudy , sunny |
| Date | 17 spring , 5 summer Y2 |
Game date in format <day> <season> or <day> <season> Y<year> |
| Days | 2 6 12 |
Trig action only when today is one of these days. You can specify any count of days. |
| Seasons | summer fall |
Trig action only when current season is on of these seasons. You can specify any count of seasons. |
| DaysOfWeek | monday wednesday |
Trig action when today's weekday is one of these weekdays. You can specify any count of weekdays. |
| FriendshipLevel | Abigail 8 , Maru 5 Shane 4 |
Trig action when friendship heart level is the same as specified value for specified NPC. You can specify more than one friendship heart level conditions. Replacement for the previous Friendship. |
| FriendshipStatus | Abigail Dating , Maru Divorced Shane Married |
Trig action when friendship status is the same as specified value for specified NPC. You can specify more than one friendship status conditions. Allowed status values: Friendly , Engaged , Married , Divorce |
| MailReceived | CF_Fish |
Trig action when mail with the specified id was received by farmer. |
| EventSeen | 3910674 |
Trig action when event with this event id seen by player. |
| MinDaysPlayed | 34 |
Minimum played days from start of new game (from 1 spring year 1) |
| MaxDaysPlayed | 51 |
Maximum played days from start of new game (from 1 spring year 1) |
| DaysPlayed | 19 |
Total played days from start of new game (from 1 spring year 1) |
| IsPlayerMarried | yes or no |
Is player married? |
| QuestAcceptedInPeriod | season or season year or today or season year weekday |
Checks if this quest was accepted in current specified time period. The input could be combinations of: day , weekday , season , year , date . Value season year means quest was accepted in this year in current season and in any day; season means quest was accepted in current season in any year and any day; today means quest was accepted just today. |
| QuestAcceptedDate | 17 spring , 5 summer Y2 |
Checks if this quest was accepted in specified date. Game date in format <day> <season> or <day> <season> Y<year> |
| QuestCompletedDate | 17 spring , 5 summer Y2 |
Check if this quest was completed in specified date. Game date in format <day> <season> or <day> |
| QuestAcceptedToday | yes or no |
Check if this quest was (or wasn't) accepted today |
| QuestCompletedToday | yes or no |
Check if this quest was (or wasn't) completed today |
| QuestNeverAccepted | yes or no |
Check if this quest was (or wasn't) never accepted yet |
| QuestNeverCompleted | yes or no |
Check if this quest was (or wasn't) never completed yet |
| SkillLevel | Farming 1 , Foraging 2 Fishing 3 Mining 2 |
Check if player skill level equal or higher than what is defined. Allowed skill values: Farming , Fishing , Foraging , Mining , Combat , Luck |
| IsCommunityCenterCompleted | yes or no |
Check if community center is already completed. |
| BuildingConstructed | Coop or Deluxe_Coop Well Coop |
Check if specified building is currently present in farm. |
| KnownCraftingRecipe | Furnace |
Player knows specified crafting recipe. |
| KnownCookingRecipe | Fried Egg |
Player knows specified cooking recipe. |
| HasMod | PurrplingCat.NpcAdventure |
Checks if mod with specified mod UID(s) are loaded in SMAPI. You can put here one or more mod UIDs. |
| Random | 52 or 22.272 |
A random chance in % (0 - 100). Number 52 means 52% of chance, number 22.272 means 22.272% of chance. |
| EPU | EPU string like !z spring/t 600 1000 |
Condition processed by Expanded Preconditions Utility. For use this condition, EPU must be installed in SDV mods folder. See EPU docs for more information. |
| HasItemInInventory | Battery Pack , item_amethyst , food_sweet, food_bakery |
Check if player has an item in inventory matches given name or context tags. |
| HasActiveQuest |<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>|
Check if one or more of named quests are active in player's quest log. Named quests must be managed by QF. |
| CurrentLocation | Town , Farm and etc |
Check if player's current location is the specified location in this condition by location name. |
Every condition name enlisted in this common conditions list you can prefix with not:
for negate condition result.
For example: not:EventSeen
means event with specified id was not seen by player;
Also you can chain condition values with OR
logic function with character separator |
:
{
"Weather": "rainy | snowy", // Means current weather is 'rainy' OR 'snowy'
"Date": "6 summer Y1 | 19 fall Y1 | 24 spring Y3", // Means current date is '6th summer year 1' OR '19th fall year 1' OR '24th spring year 3'
"EventSeen": "335478 | 44125", // Means player seen event ID 335478 OR event ID 44125
"not:MailReceived": "ccComplete | jojaMember" // Player NOT received mail 'ccComplete' OR 'jojaMember'
}
Offers
You can define offers. Offers are descriptions of when and by which source your quest will be delivered to player to accept (add to quest log). You can define one or more offers (for different or for the same quest).
| Field | Description |
|---|---|
| QuestName | (string) Quest for schedule to offer (available for add to quest log). |
| OfferedBy | (string) Which source offers this quest to accept. (See quest sources bellow) |
| OfferDetails | (custom) Details for quest offer. This field is customized. (Optional. See quest sources bellow) |
| When | (dictionary<string, string>) When this quest will be offered (see environment conditions). |
| OnlyMainPlayer | (boolean) Set to true if you want to offer this quest only for main player (server). |
Quests sources
These are the available quests sources provided by native Quest Framework. Some sources require defined offer details. There are different offer details based on the source.
Bulletinboard
Offers quest on bulletinboard located in front of the seeds shop (Pierre). Quest is offered on the board every day (morning).
This source NOT requires or accepts any offer details
{
"Format": "1.0",
"Quests": [
{
"Name": "abigail_amethyst", // No id needed, will be automatically generated
"Type": "ItemDelivery", // Vanilla quest type
"Title": "The purple lunch",
"Description": "Abigail are very hungry. She wants to eat something special from mines.",
"Objective": "Bring amethyst to Abigail",
"Reward": 300, // 300g
"Cancelable": true,
"Trigger": "Abigail 66", // Bring amethyst to Abby
"ReactionText": "Oh, it's looks delicious. I am really hungry.",
}
],
"Offers": [
{
"QuestName": "abigail_amethyst",
"OfferedBy": "Bulletinboard",
"When": {
"DaysOfWeek": "Monday Thursday Friday",
"Seasons": "spring fall",
}
}
]
}
Custom board
You can offer your quest on your custom quest board. Just use Board:<boardName>
in quest offer field OfferedBy
.
Quest is offered on the board every day (morning).
This source NOT requires or accepts any offer details
{
"Format": "1.0",
"Quests": [
{
"Name": "bat_problem",
"Type": "Monster",
"Title": "The bat problem",
"Description": "Bats are attacking the town every night. Slay some bats and make town more safe.",
"Objective": "Slay 10 bats",
"Reward": 500, // 500g
"DaysLeft": 10,
"Cancelable": false,
"Trigger": "Bat 10"
}
],
"Offers": [
{
"QuestName": "bat_problem",
"OfferedBy": "Board:TestBoard",
},
"When": {
"Weather": "sunny"
}
}
],
"CustomBoards": [
{
"BoardName": "TestBoard",
"Location": "Farm",
"Tile": "70,8"
}
]
}
NPC
NPC can offer your quest via dialogue (speak with them and get a quest)
Requires these offer details
Field | Description
------------ | -----------
NpcName | (string) Which NPC offers this quest.
DialogueText | (string) What to NPC say to offer this quest.
Secret | (bool) If this is true
, then the quest exclamation mark indicator about NPC head is hidden. (default is false
)
NOTE: If you are using a Random
condition in offer conditions, it's highly recommended set Secret
in the offer details to true
. Otherwise the quest exclamaiton mark indicator may blink!
{
"Format": "1.0",
"Quests": [
{
"Name": "abigail_amethyst", // No id needed, will be automatically generated
"Type": "ItemDelivery", // Vanilla quest type
"Title": "The purple lunch",
"Description": "Abigail is very hungry. She wants to eat something special from mines.",
"Objective": "Bring amethyst to Abigail",
"Reward": 300, // 300g
"Cancelable": true,
"Trigger": "Abigail 66", // Bring amethyst to Abby
"ReactionText": "Oh, this looks so delicious. I am really hungry, thank you, @!$h"
}
],
"Offers": [
{
"QuestName": "abigail_amethyst",
"OfferedBy": "NPC",
"OfferDetails": {
"NpcName": "Abigail", // Speak with Abigail to get this quest
"DialogueText": "I have a craving for something special.#$b#@, can you bring me amethyst?"
},
"When": {
"DaysOfWeek": "Monday Thursday Friday",
"Seasons": "spring fall"
}
}
]
}
Farmer can get a quest via received letter in their mailbox on the farm. Letter with offered quest is delivered to player's mailbox in the morning.
Requires these offer details Field | Description ------------ | ----------- Topic | (string) Title or topic of the letter (optional) Text | (string) Text of the quest source letter (required)
{
"Format": "1.0",
"Quests": [
{
"Name": "bat_problem",
"Type": "Monster",
"Title": "The bat problem",
"Description": "Bats are attacking the town every night. Slay some bats and make town more safe.",
"Objective": "Slay 10 bats",
"Reward": 500, // 500g
"Cancelable": false,
"Trigger": "Bat 10 Lewis", // Slay 10 bats and then talk with Lewis
"ReactionText": "Good job, @. Our town is safe for this time.#$b#Bats are big problem after mines in mountains are open again. We must be carefull."
}
],
"Offers": [
{
"QuestName": "bat_problem",
"OfferedBy": "Mail",
"OfferDetails": {
"Topic": "The bat problem",
"Text": "Hi, @,^Our town is not safe during nights, because agressive kind of bats attacking villagers and they are scared. Reduce the bat population and make this town safe again. Thanks ^ -Mayor Lewis"
},
"When": {
"Weather": "cloudy",
"Seasons": "spring summer",
"Days": "4 11 24"
}
}
]
}
Custom boards (for quests and special orders)
With the Quest Framework you can define your custom board for offer your custom quests or special orders. You can do it with field CustomBoards
in root element of quests.json
definition. This field provides an array with custom board definitions. Quest board definition contains these fields:
| Field name | Type | Description |
|---|---|---|
| BoardName | string |
Name of your custom board |
| BoardType | enum |
Type of your board. Allowed values is Quests , SpecialOrders . Default value: Quests |
| Location | string |
Name of the location where is the board placed |
| Tile | Point |
Tile where is the board placed. Format is <x>,<y> . |
| UnlockWhen | Dict<string, string> |
(optional) Required conditions to unlock this board. When this field is not defined, no conditions are required - The board is always unlocked. |
| ShowIndicator | bool |
(optional) Show the ! indicator on the board tile when the board has an active quest which can be accepted? (default is true ) |
| IndicatorOffset | Vector2 |
(optional) Position offset of exclamation mark indicator on the board tile (offset is in px) |
| Texture | string |
(optional) Path to a custom background texture. Path can locate local PNG asset inside content pack folder or game asset. For locate background in game assets load this texture with Content Patcher first (or by another mod, which can inject custom game assets). If this field is not defined, then board menu uses default texture. |
Custom board is placed as actionable tile to specified position in defined location. If the board is unlocked and player clicks to the board tile a board menu is shown. This board menu offers quests which refers this board. How to refer custom board in quest or special order see bellow.
Custom quest board
- Define custom board in
quests.json
in fieldCustomBoards
, give them a valid **name ** and specify the type as Quests. Also you can specify custom texture, unlock condition or disable the available quest indicator. - Create a quest offer in
quests.json
and in their fieldOfferedBy
setBoard:<yourCustomBoardName
like Board:MyQuestBoard if your board is named as MyQuestBoard in the custom board definition.
// quests.json in your content pack folder
{
/* ... */
"Offers": [
{
"QuestName": "bat_problem",
"OfferedBy": "Board:MyQuestBoard",
},
"When": {
"Weather": "sunny"
}
}
],
"CustomBoards": [
{
"BoardName": "MyQuestBoard",
"Location": "Farm",
"Tile": "70,8",
"Texture": "LooseSprites/MyQuestBoard", // This texture is added with Content Patcher
"UnlockWhen": {
"DaysPlayed": 28 // This board can be open by player after 28 days from first game day.
}
}
]
}
NOTE: Texture size for Quests
board type must be 338x198 px
.
Custom special orders board
Custom special orders are defined with Quest Framework in quests.json
in your QF content pack folder. Then you can refer your board in your special order in the content pack, which adds your special orders. Special Orders can't be defined directly with Quest Framework, you must define them with Content Patcher by editing content target Data/SpecialOrders
. In your order definition set QF:<boardName>
to field OrderType
. This special order will be offered only in your custom special orders board.
- Define custom board in
quests.json
in fieldCustomBoards
, give them a valid **name ** and specify the type as SpecialOrders. Also you can specify custom texture, unlock condition or disable the available quest indicator. - In your order definition (in Content Patcher
content.json
inEditData
change forData/SpecialOrders
) setQF:<boardName>
to fieldOrderType
. This special order will be offered only in your custom special orders board.
// quests.json in your QF content pack
{
/* ... */
"CustomBoards": [
{
"BoardName": "MySpecialOrdersBoard",
"Location": "Farm",
"Tile": "70,8",
"Texture": "LooseSprites/MySpecialOrdersBoard", // This texture is added with Content Patcher
"UnlockWhen": {
"DaysPlayed": 28 // This board can be open by player after 28 days from first game day.
}
}
]
}
// content.json in your Content Patcher content pack which adds your special orders
{
/* ... */
"Changes": [
{
"Action": "EditData",
"Target": "Data/SpecialOrders",
"Entries": {
"PurrplingCat.PurrplingOrders.AbbyRockLunch": {
"Name": "[PurrplingCat.PurrplingOrders.AbbyRockLunch_Name]",
"Requester": "Abigail",
"Duration": "Week",
"Repeatable": "True",
"RequiredTags": "",
"OrderType": "QF:MySpecialOrdersBoard", // Offer this order on MySpecialOrdersBoard custom special orders board
/* ... */
},
/* ... */
}
}
]
}
NOTE: Special orders board custom background texture must be 338x198 px
Custom drop boxes (for special orders)
If you need define special orders with objective type donation and do you want define your custom donation drop box for your special orders, we have good news for you. With Quest Framework you can do it! Just define your drop boxes in field CustomDropBoxes
in root element of your quests.json
file in your QF content pack folder. Then you can refer your drop boxes in your special orders defined with Content Patcher what you want.
| Field name | Type | Description |
|---|---|---|
| Name | string |
Name of your custom drop box. |
| Location | string |
Name of location where your drop box is placed. |
| Tile | Point |
Tile where is your drop box placed. Format is <x>,<y> . |
// quests.json in QF content pack folder
{
/* ... */
"CustomDropBoxes": [
{
"Name": "MyDropBox",
"Location": "Farm",
"Tile": "69,8"
}
]
}
// content.json in your Content Patcher content pack
{
/* ... */
"Changes": [
{
"Action": "EditData",
"Target": "Data/SpecialOrders",
"Entries": {
"PurrplingCat.PurrplingOrders.AbbyRockLunch": {
"Name": "[PurrplingCat.PurrplingOrders.AbbyRockLunch_Name]",
"Requester": "Abigail",
"Duration": "Week",
"Repeatable": "True",
"RequiredTags": "",
"OrderType": "", // Or put `QF:<boardName>` you can specify which custom board offer this order (must be defined in `CustomBoards` in QF content pack field first)
"Objectives": [
{
"Type": "Donate",
"Text": "[Lumisteria.SpecialOrders.DemetriusCrabPotStudy_Objective_1_Text]",
"RequiredCount": "25",
"Data": {
"DropBox": "MyDropBox", // Your drop box name here
"DropBoxGameLocation": "Farm",
"DropBoxIndicatorLocation": "69 7",
"AcceptedContextTags": "mineral_amethyst"
}
}
],
/* ... */
},
/* ... */
}
}
]
}
Compatibility with other mods
Json Assets support
Quest Framework is compatible with JsonAssets mod. The framework supports JsonAssets objects for the Trigger
quest field via token named ja
and supports two item types: object
and bigcraftable
.
Token looks like: {{ja: <itemName> [|bigcraftable]}}
If you add suffix |bigcraftable
after item name, then Quest Framework looks in the BigCraftable sheet. Otherwise looks in Object sheet.
Example
{
"Format": "1.0",
"Quests": [
{
"Name": "willy_fish_oil", // No id needed, will be automatically generated
"Type": "ItemDelivery", // Vanilla quest type
"Title": "Fish Oil needed",
"Description": "Hi. I need a fish oil. ASAP please.\n - Willy",
"Objective": "Bring Fish Oil to Willy",
"Reward": 220, // 220g
"Cancelable": true,
"Trigger": "Willy {{ja:Fish Oil}}", // Bring Fish Oil to Willy (this item is from JA items)
"ReactionText": "This one smells very intensive! Thank you so much, @!$h"
}
]
}
Outbound
Add quest via NPC dialogue (external)
You can add known quest in Quest Framework via NPC dialogues. You can define it with content patcher (Patch Dialogue/<NPC_name>
) and add your dialogue which adds a quest to the player's questlog or edit existing dialogue line.
By place [quest:<questname> <modUID>]
to the dialogue player get a quest when speak with NPC and this dialogue line is shown.
// Some dialogue definition file
{
"yourDialogueKey": "Can you bring me an Amethyst? [´quest:bringAmethyst purrplingcat.myquestmod]"
"anotherDIalogue": "What's up? $h#$b#Are you interested to small fighting adventure?#$b#Bless your sword! [quest:slayMonsters purrplingcat.myquestmod]"
}
NOTE: By add quest via dialogue in this outbound way, you can't check the QF conditions and no exclamation mark will be shown above NPC head. But in this way you can offer a quest via question dialogue.
Hooks (obsolete)
HOOKS ARE OBSOLETE! It's not recomended this feature, because it will be removed in future versions Some of hooks features are replaced with Quest Essential's Adventure Quests.
You can add some "magic" to your custom quests with hooks. Hooks do specified action with your quests when something was triggered in the game.
Hooks has conditions for check if the action of hook will be triggered or not. There are two types of conditions: local and environment. You don't must specify all available conditions. You can specify conditions which you need.
| Field | Description |
|---|---|
| When | When this hook will be trigered (see hook types) |
| Action | Which action will be executed (see actions) |
| Has | Conditions for execute the hook (see conditions and hook types). |
Example
{
"Format": "1.0",
"Quests": [
{
"Name": "my_custom_quest",
"Type": "ItemDelivery", // Vanilla quest type
"Title": "The purple lunch",
"Description": "Abigail are very hungry. She wants to eat something special from mines.",
"Objective": "Bring amethyst to Abigail",
"Reward": 300, // 300g
"Cancelable": true,
"Trigger": "Abigail 66", // Bring amethyst to Abby
"ReactionText": "Oh, it's looks delicious. I am really hungry.",
"Hooks": [
// Quest will be accepted (added to quest log)
// when farmer go near the tree on the west side of graveyard in Town
// and when is sunny weather today
{
"When": "Tile",
"Has": {
"Location": "Town",
"Area": "2038 5573 326 245",
"Weather": "sunny"
},
"Action": "Accept"
}
]
}
]
}
Actions
There are these types of actions:
| Action name | Description |
|---|---|
| Complete | Complete the quest |
| Remove | Remove the quest from player's questlog (quest is not considered complete, just removed) |
| CheckIfComplete | Handles completion checker and complete the quest if inner quest conditions are met. |
| Accept | Accept this quest and add it to player's quest log as new quest (has the sign new in quest log). |
Hook types
Some hook types has own specific conditions. See them bellow.
NOTE: For specialized hook type's conditions you cant't use the negation not:
prefix. This prefix is only for common conditions and for global custom conditions.
Location
This hook is triggered when player entered or leaved specific location and all other conditions are met.
| Local condition | Description |
|---|---|
| Enter | Name of the location the player enter |
| Leave | Name of the location the player left |
If you specify both, then the hook action will be triggered when player left the Leave location and entered the Enter location. For example:
Enter condition is Town
and leave condition is BusStop
. This hook trigs their action when player entered Town from the Bus Stop.
Tile
This hook is triggered when player stands on specific tile position or in specific area of specific location.
| Local condition | Description |
|---|---|
| Location | Game location |
| Position | Standing tile position (X, Y). Example 13 10 |
| Area | Specified standing area (X, Y, Width, Height) Example: 2038 5573 326 245 |
| TouchAction | Touch action property value must be this defined value for trig hook's action. |


The Xbox Elite Wireless Controller Series 2 is now available to buy
by AshXbox’s latest Elite controller, the Xbox Elite Wireless Controller Series 2, is now officially up for purchase in most countries.
While the controller sports a price tag of $179.99/£159.99, it’s worth it for what you get. With adjustable-tension thumbsticks, shorter hair trigger locks, wrap-around rubberised grip, and re-engineered components, this controller is made for those who want to get the absolute best out of their games.
The Xbox Elite Wireless Controller Series 2 also offers intimate customisation options thanks to its interchangeable thumbsticks and paddles and its range of button remapping options.

The thumbsticks are even adjustable-tension, meaning you can change the resistance to work with your hands. All these customisation options give you over 30 new and different ways to play like a pro.
What’s more is that the controller isn’t just limited to Xbox One players – the Elite Wireless Controller Series 2 utilises Xbox Wireless, Bluetooth, and the included USB-C cable in order to allow you to play on both Xbox One and Windows 10 devices.
Here’s what you get in the box:
- Xbox Elite Wireless Controller Series 2
- Carrying case
- Set of 6 thumbsticks: Standard (2), Classic (2), Tall (1), Wide Dome (1)
- Set of 4 paddles: Medium (2), Mini (2)
- Set of 2 D-pads: Standard, Faceted
- Thumbstick-adjustment tool
- Charging dock
- USB-C cable
You can pick up the Xbox Elite Wireless Controller Series 2 at the Microsoft Store by following the link here. If the controller isn’t available in your region yet, don’t worry – Microsoft aims to have the controller out in all markets before the end of December.
For more controller ideas, you can check out the Official MSPoweruser Xbox Holiday Gift Guide. Happy gaming!


Package com.jme.app
Class BasicProfiler
- java.lang.Object
-
- com.jme.app.BasicProfiler
-
- All Implemented Interfaces:
AppProfiler
public class BasicProfiler extends java.lang.Object implements AppProfiler
An AppProfiler implementation that collects two per-frame application-wide timings for update versus render and uses it to create a bar chart style Mesh. The number of frames displayed and the update interval can be specified. The chart Mesh is in 'milliseconds' and can be scaled up or down as required.Each column of the chart represents a single frames timing. Yellow represents the time it takes to perform all non-rendering activities (running enqueued tasks, stateManager.update, control.update(), etc) while the cyan portion represents the rendering time.
When the end of the chart is reached, the current frame cycles back around to the beginning.
- Author:
- Paul Speed
-
-
Constructor Summary
Constructors Constructor Description BasicProfiler()
BasicProfiler(int size)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
appStep(AppStep step)
Called at the beginning of the specified AppStep.void
appSubStep(java.lang.String... additionalInfo)
Called as a substep of the previous AppStepprotected void
createMesh()
int
getFrameCount()
Mesh
getMesh()
Returns the mesh that contains the bar chart of tracked frame timings.long
getUpdateInterval()
void
setFrameCount(int size)
Sets the number of frames to display and track.void
setUpdateInterval(long nanos)
Sets the number of nanoseconds to wait before updating the mesh.void
spStep(SpStep step, java.lang.String... additionalInfo)
Called at the beginning of the specified SpStep (SceneProcessor step).protected void
updateMesh()
void
vpStep(VpStep step, ViewPort vp, RenderQueue.Bucket bucket)
Called at the beginning of the specified VpStep during the rendering of the specified ViewPort.
-
-
-
Method Detail
-
setFrameCount
public final void setFrameCount(int size)
Sets the number of frames to display and track. By default this is 1280.
-
getFrameCount
public int getFrameCount()
-
setUpdateInterval
public void setUpdateInterval(long nanos)
Sets the number of nanoseconds to wait before updating the mesh. By default this is once a millisecond, ie: 1000000 nanoseconds.
-
getUpdateInterval
public long getUpdateInterval()
-
getMesh
public Mesh getMesh()
Returns the mesh that contains the bar chart of tracked frame timings.
-
createMesh
protected final void createMesh()
-
updateMesh
protected void updateMesh()
-
appStep
public void appStep(AppStep step)
Description copied from interface:AppProfiler
Called at the beginning of the specified AppStep.- Specified by:
appStep
in interfaceAppProfiler
-
appSubStep
public void appSubStep(java.lang.String... additionalInfo)
Description copied from interface:AppProfiler
Called as a substep of the previous AppStep- Specified by:
appSubStep
in interfaceAppProfiler
-
vpStep
public void vpStep(VpStep step, ViewPort vp, RenderQueue.Bucket bucket)
Description copied from interface:AppProfiler
Called at the beginning of the specified VpStep during the rendering of the specified ViewPort. For bucket-specific steps the Bucket parameter will be non-null.- Specified by:
vpStep
in interfaceAppProfiler
-
spStep
public void spStep(SpStep step, java.lang.String... additionalInfo)
Description copied from interface:AppProfiler
Called at the beginning of the specified SpStep (SceneProcessor step). For more detailed steps it is possible to provide additional information as strings, like the name of the processor.- Specified by:
spStep
in interfaceAppProfiler
-
-


A p element with a span element inside of it.
Another p element with a span element inside of it.
A p element with no span inside.


Bartłomiej Kania
Source: https://www.guru99.com/introduction-to-selenium-grid.html
<EMAIL_ADDRESS>[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19.957 s
[INFO] Finished at: 2017-10-19T17:48:41+02:00
[INFO] Final Memory: 23M/144M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test (default-test) on project test1: There are test failures.
[ERROR]
[ERROR] Please refer to C:\Users\Bartomiej Kania\IdeaProjects\test1\target\surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream.
[ERROR] The forked VM terminated without properly saying goodbye. VM crash or System.exit called?


Card History
Settings:
Show newest first
Show oldest first
Show everything
Show only comments
Loading full history...


Enter
1 2 3 4 5 6 7 8 9 Clear 0 BS
Map Data Saved!
Name Enable Disable
Output Accessory Addr Dir Red Green Link Ignore
Please power off.


DEADPOOL
Created by Fabian Nicieza and Rob Liefeld, Deadpool made his first appeareance in the comic book The New Mutants #98 (1991) as a supervillain, later evolving to the antihero we all some people know today.

Deadpool's main superpower is an accelerated healing factor that allows him to survive even decapitation, but also makes him shitbat crazy mentally unstable. This mental condition also makes him a highly unpredictable opponent and an expert at distracting and enraging his enemies through his wisecracks. Also a highly trained assassin, proficient in many forms of combat and in the use of multiple weapons, Deadpool also has the ability to make everyone else dislike hate him.
Deadpool is also the only comic book character which actually knows he's a comic book character. He's able to engage with the readers or audience and even read other comic books in order to gain knowledge about other characters. He is also aware that there is a Wikipedia page about him and probably even this project.


Nurmagomedov says McGregor needs 10 fights for rematch
by The Associated Press, StaffMOSCOW -- Khabib Nurmagomedov said Friday that Conor McGregor would need to win 10 straight fights to earn a rematch for his UFC title.
McGregor hasn't fought since Nurmagomedov beat him by submission for the UFC lightweight title in October last year.
The Irish fighter last month outlined his plan for two fights leading up to a rematch with the Russian.
That's not enough for Nurmagomedov.
"As for a rematch, to fight for a belt in the UFC, I remember I had something like nine or 10 fights. If he wins 10 fights in a row, then that's completely possible," Nurmagomedov said.
Nurmagomedov adds he's in negotiations to fight Tony Ferguson next, but wants it in New York rather than the UFC's preferred venue of Las Vegas.
That's because he disagrees with the Nevada State Athletic Commission's decision to fine and suspend him for a post-fight brawl after his bout with McGregor.
"They offered me to fight in Vegas in March, but I told them that if Vegas officially apologizes for wrongly fining me for that incident on October 6, 2018, then I'll fight there," he said.
"If not, then they can assign me to another date. As far as I know, they're planning in April to hold (a fight card) somewhere in New York, so I'm saying I'm ready for April, or March if Las Vegas apologizes."


Aries
Aries : (March 21 – April 20)
It is going to be a wonderful day. You will have the stamina and the energy to get your tasks completed. And will work with full dedication and commitment. Don’t keep putting your partner down. This will be a source of irritation and you will not benefit. Trying to score brownie points never helps a romance to get better.


Markdown is a lightweight markup language with plain text formatting syntax designed so that it can be converted to HTML and many other formats using a tool by the same name. Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor.
A First Level Header ==================== A Second Level Header --------------------- Now is the time for all good men to come to the aid of their country. This is just a regular paragraph. The quick brown fox jumped over the lazy dog's back. ### Header 3 > This is a blockquote. > > This is the second paragraph in the blockquote. > > ## This is an H2 in a blockquote
Now is the time for all good men to come to the aid of their country. This is just a regular paragraph.
The quick brown fox jumped over the lazy dog's back.
This is a blockquote.
This is the second paragraph in the blockquote.
This is an H2 in a blockquote


Payment Amount
{{adTemplate.payment}}
View Count Threshold
{{adTemplate.threshold}}
Enter Youtube ID here. This ID can be found on any Youtube video by going to Share and copying from
"https://youtu.be/{{ '{' }}youtube ID{{ '}' }}"
Youtube ID
Failed to validate given Youtube ID. Please try again.


MATRIX_AUGMENT _ _ _ _ _ _ _ _ _ _ _ _ operator
Matrix augment, matrix stack:
(If you are feeling lazy then the braces can be omitted.)
<matrix\_list> :- matrices.
matrix_augmentsticks the matrices in <matrix\_list> together horizontally.
matrix_stacksticks the matrices in <matrix\_list> together vertically.
matrix_augment({A,A}); [1 2 3 1 2 3] [ ] [4 5 6 4 5 6] [ ] [7 8 9 7 8 9] matrix_stack(A,A); [1 2 3] [ ] [4 5 6] [ ] [7 8 9] [ ] [1 2 3] [ ] [4 5 6] [ ] [7 8 9]
Related functions: augment_columns, stack_rows, sub_matrix.

 This is created by removing the <r>'th row and the <c>'th column from <matrix>.
minor(A,1,3); [4 5] [ ] [7 8]
Related functions: remove_columns, remove_rows.
INDEX
MULT_COLUMNS _ _ _ _ _ _ _ _ _ _ _ _ operator
Mult columns, mult rows:
<matrix> :- a matrix.
<column\_list> :- a positive integer or a list of positive integers.
<expr> :- an algebraic expression.
mult_columnsreturns a copy of <matrix> in which the columns specified in <column\_list> have been multiplied by <expr>.
mult_rowsperforms the same task on the rows of <matrix>.
mult_columns(A,{1,3},x); [ x 2 3*x] [ ] [4*x 5 6*x] [ ] [7*x 8 9*x] mult_rows(A,2,10); [1 2 3 ] [ ] [40 50 60] [ ] [7 8 9 ]
Related functions: add_to_columns, add_to_rows.

To do this, multiples of the <r>'th row are added to every other row in the matrix.
This means that the <c>'th column will be 0 except for the (<r>,<c>)'th entry.
pivot(A,2,3); [ - 1 ] [-1 ------ 0] [ 2 ] [ ] [4 5 6] [ ] [ 1 ] [1 --- 0] [ 2 ]
Related functions: rows_pivot.

Given the singular value decomposition of <matrix>, i.e: A = U*P*V^T, then the pseudo inverse A^-1 is defined by A^-1 = V^T*P^-1*U.
Thus <matrix> * pseudo_inverse(A) = Id. (Id is the identity matrix).
R := mat((1,2,3,4),(9,8,7,6)); [1 2 3 4] r := [ ] [9 8 7 6] on rounded; pseudo_inverse(R); [ - 0.199999999996 0.100000000013 ] [ ] [ - 0.0499999999988 0.0500000000037 ] [ ] [ 0.0999999999982 - 5.57825497203e-12] [ ] [ 0.249999999995 - 0.0500000000148 ]
Related functions: svd.

Switches:
imaginary:- if on then matrix entries are x+i*y where -limit <x,y <<limit>.
not_negative:- if on then 0 <entry <<limit>. In the imagina ry case we have 0 <x,y <<limit>.
only_integer:- if on then each entry is an integer. In the imaginary case x and y are integers.
symmetric:- if on then the matrix is symmetric.
upper_matrix:- if on then the matrix is upper triangular.
lower_matrix:- if on then the matrix is lower triangular.
on rounded; random_matrix(3,3,10); [ - 8.11911717343 - 5.71677292768 0.620580830035 ] [ ] [ - 0.032596262422 7.1655452861 5.86742633837 ] [ ] [ - 9.37155438255 - 7.55636708637 - 8.88618627557] on only_integer, not_negative, upper_matrix, imaginary; random_matrix(4,4,10); [70*i + 15 28*i + 8 2*i + 79 27*i + 44] [ ] [ 0 46*i + 95 9*i + 63 95*i + 50] [ ] [ 0 0 31*i + 75 14*i + 65] [ ] [ 0 0 0 5*i + 52 ]INDEX
REMOVE_COLUMNS _ _ _ _ _ _ _ _ _ _ _ _ operator
Remove columns, remove rows:
<matrix> :- a matrix. <column\_list> :- either a positive integer or a list of positive integers.
remove_columnsremoves the columns specified in <column\_list> from <matrix>.
remove_rowsperforms the same task on the rows of <matrix>.
remove_columns(A,2); [1 3] [ ] [4 6] [ ] [7 9] remove_rows(A,{1,3}); [4 5 6]
Related functions: minor.

N := mat((1,2,3),(4,5,6),(7,8,9),(1,2,3),(4,5,6)); [1 2 3] [ ] [4 5 6] [ ] n := [7 8 9] [ ] [1 2 3] [ ] [4 5 6] rows_pivot(N,2,3,{4,5}); [1 2 3] [ ] [4 5 6] [ ] [7 8 9] [ ] [ - 1 ] [-1 ------ 0] [ 2 ] [ ] [0 0 0]
Related functions: pivot.
 Each one must be of the form sum of variables ( <=,=,>=) number.
simplexapplies the revised simplex algorithm to find the optimal(either maximum or minimum) value of the <objective function> under the linear inequality constraints.
It returns {optimal value,{ values of variables at this optimal}}.

It returns
{U,P,V}
where A = U*P*V^T
and P = diag(sigma(1) ... sigma(n)).
sigma(i) for i= 1 ... n are the singular values of <matrix>.
n is the column dimension of <matrix>.
The singular values of <matrix> are the non-negative square roots of the eigenvalues of A^T*A.
U and V are such that U*U^T = V*V^T = V^T*V = Id. Id is the identity matrix.
Q := mat((1,3),(-4,3)); [1 3] q := [ ] [-4 3] on rounded; svd(Q); { [ 0.289784137735 0.957092029805] [ ] [ - 0.957092029805 0.289784137735] , [5.1491628629 0 ] [ ] [ 0 2.9130948854] , [ - 0.687215403194 0.726453707825 ] [ ] [ - 0.726453707825 - 0.687215403194] }INDEX
SWAP_COLUMNS _ _ _ _ _ _ _ _ _ _ _ _ operator
Swap columns, swap rows:
<matrix> :- a matrix.
<c1>,<c1> :- positive integers.
swap_columnsswaps column <c1> of <matrix> with column <c2>.
swap_rowsperforms the same task on two rows of <matrix>.
swap_columns(A,2,3); [1 3 2] [ ] [4 6 5] [ ] [7 9 8] swap_rows(A,1,3); [7 8 9] [ ] [4 5 6] [ ] [1 2 3]
Related functions: swap_entries.

This is a square symmetric matrix in which the first expression is placed on the diagonal and the i'th expression is placed on the (i-1)'th sub and super diagonals.
It has dimension n where n is the number of expressions.
toeplitz({w,x,y,z}); [w x y z] [ ] [x w x y] [ ] [y x w x] [ ] [z y x w]INDEX
VANDERMONDE _ _ _ _ _ _ _ _ _ _ _ _ operator
(If you are feeling lazy then the braces can be omitted.)
<expr\_list> :- list of algebraic expressions.
vandermondecreates the vandermonde matrix from the <expr\_list>.
This is the square matrix in which the (i,j)'th entry is <expr\_list>(i)^(j-1).
It has dimension n where n is the number of expressions.
vandermonde({x,2*y,3*z}); [ 2 ] [1 x x ] [ ] [ 2] [1 2*y 4*y ] [ ] [ 2] [1 3*z 9*z ]INDEX
Linear Algebra package
SMITHEX _ _ _ _ _ _ _ _ _ _ _ _ operator
The operator smithex computes the Smith normal form S of a matrix A (say). It returns {S,P,P^-1} where P *S*P^-1 = A.
<matrix> :- a rectangular matrix of univariate polynomials in <variable>. <variable> :- the variable.
a := mat((x,x+1),(0,3*x^2)); [x x + 1] [ ] a := [ 2 ] [0 3*x ] smithex(a,x); [1 0 ] [1 0] [x x + 1] { [ ], [ ], [ ] } [ 3] [ 2 ] [ ] [0 x ] [3*x 1] [-3 -3 ]INDEX
SMITHEX\_INT _ _ _ _ _ _ _ _ _ _ _ _ operator
The operator smithex_int performs the same task as smithex but on matrices containing only integer entries. Namely, smithex_int returns {S,P,P^-1} where S is the smith normal form of the input matrix (A say), and P*S*P^-1 = A.
<matrix> :- a rectangular matrix of integer entries.
a := mat((9,-36,30),(-36,192,-180),(30,-180,180)); [ 9 -36 30 ] [ ] a := [-36 192 -180] [ ] [30 -180 180 ] smithex_int(a); [3 0 0 ] [-17 -5 -4 ] [1 -24 30 ] [ ] [ ] [ ] { [0 12 0 ], [64 19 15 ], [-1 25 -30] } [ ] [ ] [ ] [0 0 60] [-50 -15 -12] [0 -1 1 ]INDEX
FROBENIUS _ _ _ _ _ _ _ _ _ _ _ _ operator
The operator frobenius computes the frobenius normal form F of a matrix (A say). It returns {F,P,P^-1} where P *F*P^-1 = A.
<matrix> :- a square matrix.
Field Extensions:
By default, calculations are performed in the rational numbers. To extend this field the arnum package can be used. The package must first be loaded by load_package arnum;. The field can now be extended by using the defpoly command. For example, defpoly sqrt2**2-2; will extend the field to include the square root of 2 (now defined by sqrt2).
Modular Arithmetic:
Frobeniuscan also be calculated in a modular base. To do this first type on modular;. Then setmod p; (where p is a prime) will set the modular base of calculation to p. By further typing on balanced_mod the answer will appear using a symmetric modular representation. See ratjordan for an example.
a := mat((x,x^2),(3,5*x)); [ 2 ] [x x ] a := [ ] [3 5*x] frobenius(a); [ 2] [1 x] [ - x ] { [0 - 2*x ], [ ], [1 -----] } [ ] [0 3] [ 3 ] [1 6*x ] [ ] [ 1 ] [0 --- ] [ 3 ] load_package arnum; defpoly sqrt2**2-2; a := mat((sqrt2,5),(7*sqrt2,sqrt2)); [ sqrt2 5 ] a := [ ] [7*sqrt2 sqrt2] frobenius(a); [0 35*sqrt2 - 2] [1 sqrt2 ] [ 1 ] { [ ], [ ], [1 - --- ] } [1 2*sqrt2 ] [1 7*sqrt2] [ 7 ] [ ] [ 1 ] [0 ----*sqrt2] [ 14 ]INDEX
RATJORDAN _ _ _ _ _ _ _ _ _ _ _ _ operator
The operator ratjordan computes the rational Jordan normal form R of a matrix (A say). It returns {R,P,P^-1} where P *R*P^-1 = A.
<matrix> :- a square matrix.
Field Extensions:
By default, calculations are performed in the rational numbers. To extend this field the arnum package can be used. The package must first be loaded by load_package arnum;. The field can now be extended by using the defpoly command. For example, defpoly sqrt2**2-2; will extend the field to include the square root of 2 (now defined by sqrt2). See frobenius for an example.
Modular Arithmetic:
ratjordancan also be calculated in a modular base. To do this first type on modular;. Then setmod p; (where p is a prime) will set the modular base of calculation to p. By further typing on balanced_mod the answer will appear using a symmetric modular representation.
a := mat((5,4*x),(2,x^2)); [5 4*x] [ ] a := [ 2 ] [2 x ] ratjordan(a); [0 x*( - 5*x + 8)] [1 5] [ -5 ] { [ ], [ ], [1 -----] } [ 2 ] [0 2] [ 2 ] [1 x + 5 ] [ ] [ 1 ] [0 -----] [ 2 ] on modular; setmod 23; a := mat((12,34),(56,78)); [12 11] a := [ ] [10 9 ] ratjordan(a); [15 0] [16 8] [1 21] { [ ], [ ], [ ] } [0 6] [19 4] [1 4 ] on balanced_mod; ratjordan(a); [- 8 0] [ - 7 8] [1 - 2] { [ ], [ ], [ ] } [ 0 6] [ - 4 4] [1 4 ]INDEX
JORDANSYMBOLIC _ _ _ _ _ _ _ _ _ _ _ _ operator
The operator jordansymbolic computes the Jordan normal form J of a matrix (A say). It returns {J,L,P,P^-1} where P*J*P^-1 = A. L = {ll,mm} where mm is a name and ll is a list of irreducible factors of p(mm).
<matrix> :- a square matrix.
Field Extensions:
By default, calculations are performed in the rational numbers. To extend this field the arnum package can be used. The package must first be loaded by load_package arnum;. The field can now be extended by using the defpoly command. For example, defpoly sqrt2**2-2; will extend the field to include the square root of 2 (now defined by sqrt2). See frobenius for an example.
Modular Arithmetic:
jordansymboliccan also be calculated in a modular base. To do this first type on modular;. Then setmod p; (where p is a prime) will set the modular base of calculation to p. By further typing on balanced_mod the answer will appear using a symmetric modular representation. See ratjordan for an example.
a := mat((1,y),(2,5*y)); [1 y ] a := [ ] [2 5*y] jordansymbolic(a); { [lambda11 0 ] [ ] [ 0 lambda12] , 2 lambda - 5*lambda*y - lambda + 3*y,lambda, [lambda11 - 5*y lambda12 - 5*y] [ ] [ 2 2 ] , [ 2*lambda11 - 5*y - 1 5*lambda11*y - lambda11 - y + 1 ] [---------------------- ---------------------------------] [ 2 2 ] [ 25*y - 2*y + 1 2*(25*y - 2*y + 1) ] [ ] [ 2*lambda12 - 5*y - 1 5*lambda12*y - lambda12 - y + 1 ] [---------------------- ---------------------------------] [ 2 2 ] [ 25*y - 2*y + 1 2*(25*y - 2*y + 1) ] }INDEX
JORDAN _ _ _ _ _ _ _ _ _ _ _ _ operator
The operator jordan computes the Jordan normal form J of a matrix (A say). It returns {J,P,P^-1} where P *J*P^-1 = A.
<matrix> :- a square matrix.
Field Extensions: By default, calculations are performed in the rational numbers. To extend this field the arnum package can be used. The package must first be loaded by load_package arnum;. The field can now be extended by using the defpoly command. For example, defpoly sqrt2**2-2; will extend the field to include the square root of 2 (now defined by sqrt2). See frobenius for an example.
Modular Arithmetic: Jordan can also be calculated in a modular base. To do this first type on modular;. Then setmod p; (where p is a prime) will set the modular base of calculation to p. By further typing on balanced_mod the answer will appear using a symmetric modular representation. See ratjordan for an example.
a := mat((1,x),(0,x)); [1 x] a := [ ] [0 x] jordan(a); { [1 0] [ ] [0 x] , [ 1 x ] [------- --------------] [ x - 1 2 ] [ x - 2*x + 1 ] [ ] [ 1 ] [ 0 ------- ] [ x - 1 ] , [x - 1 - x ] [ ] [ 0 x - 1] }INDEX
Matrix Normal Forms
MISCELLANEOUS PACKAGES _ _ _ _ _ _ _ _ _ _ _ _ introduction
REDUCE includes a large number of packages that have been contributed by users from various fields. Some of these, together with their relevant commands, switches and so on (e.g., the NUMERIC package), have been described elsewhere. This section describes those packages for which no separate help material exists. Each has its own switches, commands, and operators, and some redefine special characters to aid in their notation. However, the brief descriptions given here do not include all such information. Readers are referred to the general package documentation in this case, which can be found, along with the source code, under the subdirectories doc and src in the reduce directory. The load_package command is used to load the files you wish into your system. There will be a short delay while the package is loaded. A package cannot be unloaded. Once it is in your system, it stays there until you end the session. Each package also has a test file, which you will find under its name in the $reduce/xmpl directory.
Finally, it should be mentioned that such user-contributed packages are unsupported; any questions or problems should be directed to their authors.
 This package, which is an extension of the basic integration package distributed with REDUCE, will analytically integrate a wide range of expressions involving square roots. The algint switch provides for the use of the facilities given by the package, and is automatically turned on when the package is loaded. If you want to return to the standard integration algorithms, turn algint off. An error message is given if you try to turn the algint switch on when its package is not loaded.

 It includes facilities for introducing indeterminates to represent algebraic numbers, for calculating splitting fields, and for factoring and finding greatest common divisors in such domains.

 The basic algebraic operations are supported, as are differentiation and integration of vectors with respect to scalar variables, cross product and dot product, component manipulation and application of scalar functions (e.g. cosine) to a vector to yield a vector result.
 The data objects are composed from algebraic expressions connected by the infix boolean operators and, or, implies, equiv, and the unary prefix operator not.  Its heart is a new implementation of the Groebner algorithm that also allows for the computation of syzygies. This implementation is also applicable to submodules of free modules with generators represented as rows of a matrix.

 It is basically the application of the chain rule.
 COMPACT applies the side relations to the polynomial so that an equivalent expression results with as few terms as possible. For example, the evaluation of
compact(s*(1-sin x^2)+c*(1-cos x^2)+sin x^2+cos x^2, {cos x^2+sin x^2=1});
yields the result
2 2 SIN(X) *C + COS(X) *S + 1
The first argument to the operator compact is the expression and the second is a list of side relations that can be equations or simple expressions (implicitly equated to zero). The kernels in the side relations may also be free variables with the same meaning as in rules, e.g.
sin_cos_identity := {cos ~w^2+sin ~w^2=1}$ compact(u,in_cos_identity);
Also the full rule syntax with the replacement operator is allowed here.
 Examples of programs which make use of CRACK for investigating ODEs (finding symmetries, first integrals, an equivalent Lagrangian or a ``differential factorization'') are included.

 It uses several techniques, including an innovative approach based on the Meijer G-function, and contour integration.

 Such computations can be useful in the context of differential equations or power series expansions.
 In that way, the simplification of polynomial expressions can be fully done. The indeterminates are general operator objects endowed with as few properties as possible. In that way the package may be used in a large spectrum of applications.
 The program is currently able to handle scalar-valued exterior forms, vectors and operations between them, as well as non-scalar valued forms (indexed forms). It is thus an ideal tool for studying differential equations, doing calculations in general relativity and field theories, or doing simple things such as calculating the Laplacian of a tensor field for an arbitrary given frame.


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
Kelsey Boeing
10/18/2018
Cutler Hall, also known as the heart of campus, has been a prominent feature of Ohio University’s College Green since it was built in 1816.
Although many students don’t know the history behind Cutler Hall, it was built to create more academic space. The dwelling was officially the first college building in the Northwest Territory.
Benjamin Corp, of Marietta, was hired as the building’s architect and oversaw the construction of the building. For the job, he was given $6. Once the building was finished, it was dubbed the College Edifice. The total expense of Cutler Hall totaled $17,806 on April 19, 1819.
Cutler Hall was named after Manasseh Cutler, who persuaded the U.S. to set aside two townships as a land grant for the university.
The university continued to grow in size and required an addition. In 1835-1839, the East Wing and West Wing buildings were added. These are known today as McGuffey Hall and Wilson Hall.
Cutler was remodeled in the 1880s when the roof was raised and more classrooms were added to house more students.
In 1936, Cutler was abandoned as a class site, and only part of it remained occupied by administrative offices.
During the remodeling, Cutler’s wooden floors were replaced with concrete, and new windows, doors and elevators were added. Modern heating, lighting and plumbing were also installed.
In 1947, workers also found a pickled hand, apparently an exhibit in the old museum in Cutler’s tower, according to a Post report from 1972.
Kelsey Boeing | FOR THE POST
Cutler Hall has been a staple of Ohio University's campus since it first opened in 1819.
Cutler Hall was rededicated October 18-19, 1947. At the rededication ceremony, the song “Old Manasseh Cutler” was played. This is when Cutler Hall received its current name.
On Sept. 14, 1820, a resolution was passed for the purchase of a bell for the College Edifice. This bell is still in Cutler, but the bell no longer rings. Today, the chimes are recorded on tapes sent out by loudspeakers.
Cutler’s clock was a gift presented by the class of 1914. The clock often does show the incorrect time due to infrequent winding.
In June 1966, Cutler was determined “the most historic landmark in Ohio” and was declared a National Historic Landmark. A plaque was also unveiled on the steps of Cutler marking it as the oldest university building.
“I like the fact that it’s been here since the beginning ,” said Tammy Babylon, executive office administer for the vice president of Student Affairs. “I am walking in the halls our founding fathers have walked.”
Cutler Hall is still in use today and has been on campus for 202 years.
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


Welcome to Replate!
We get leftovers to people in need
Welcome to Replate!
We get leftovers to people in need
Team Lead
Scott is an iOS Engineer from Ohio. He has great leadership skills, and a desire to be the best, that motivates the team.
Web User Interface Developer
Tyler is a UI Developer from North Carolina. He brings design skills that help give a fresh look to Replate
Web User Interface Developer
Cam is a UI Developer from Washington. He brings formatting skills to ensure the content is in the right place.
Front End Architect
Ian is a Front End Engineer from Florida. He brings incredible react skills that make the entire app look polished and flow perfectly.
Back End Architect
Randy is a Back End Engineer from Florida. He brings a tireless work effort to the team, and makes sure the data gets to all the right places.
Are you a person who's good with Technology, and has a passion for caring for others? You might be a perfect fit for the Replate Team! Send your resume, and a cover letter, as well as a short explanation as to why you think you'd be a good fit to us at Replate at<EMAIL_ADDRESS>we look forward to hearing from you.


This is the official AtomicDEX mobile beta program channel -
Android: https://play.google.com/store/apps/details?id=com.komodoplatform.atomicdex - iOS: https://testflight.apple.com/join/c2mOLEoC - Please use https://github.com/KomodoPlatform/atomicdex/issues for bug reports and feature requests. For critical security bug reports please do send us your encrypted (https://pgp.mit.edu/pks/lookup?op=get&search=0x379287998EE6CF47) report to<EMAIL_ADDRESS>and allow up to 24h for reply. For atomicDEX API (mm2) related issue reports or feature requests please do use https://github.com/KomodoPlatform/atomicDEX-API/issues
100 messages
Before 05-Dec-19 12:00 AM
gcharang10-Oct-19 07:18 AM
can you try clearing local data/cache and then reninstall?
Trusty10-Oct-19 07:36 AM
No black screen but is stucked on connecting...
gcharang10-Oct-19 07:39 AM
@Trusty 4g/ wifi ? are you using a vpn?
Trusty10-Oct-19 08:06 AM
WiFi and no vpn, will next update fix this?
gcharang10-Oct-19 08:17 AM
@Trusty can you send me your log through DM?
Trusty10-Oct-19 08:23 AM
how can I access log?
gcharang10-Oct-19 08:27 AM
@Trusty settings tab -> "share log file"
benzo36510-Oct-19 01:23 PM
It seems you can't open atomic dex and another wallet based on atomic dex eg. Rfox, one will be stuck on connecting.... @ca333
Crypto Rich10-Oct-19 01:28 PM
Hi - I have some questions about the masdex (mobile atomic swap dex) - How do coins/tokens get listed on the dex?
I know that BTC protocol coins and ERC20 tokens can be exchanged on the masdex but what about NEO, TRX coins and tokens etc?
Acura10-Oct-19 04:36 PM
Would be cool if i can add several Wallets/Portfolio to AtomicDex to choose from it
3
Dr.Terminus10-Oct-19 04:59 PM
good idea
Any discussion about what next coins added will be?
jeezy10-Oct-19 05:23 PM
can I somehow somewhere see what orders there are in general?
Just wanted to report on Android 9, I open AtomicDex and it goes to a black screen.
Markus10-Oct-19 11:54 PM
@The1earl uninstall the app and reinstall it, dont forget to backup your seed before uninstalling if u dont have it saved
The1earl11-Oct-19 12:01 AM
Ok
The1earl11-Oct-19 12:17 AM
Thanks Markus, all set
Trusty11-Oct-19 12:43 AM
how can i backup the seed if the screen is all black?
2
gcharang11-Oct-19 03:09 AM
@Crypto Rich
anybody can test if their coin works and submit a Pull Request to this repo to get added to the backend and the coin will be available for all GUIs https://github.com/jl777/coins
how-to: https://github.com/jl777/coins/blob/master/README.md
listing in atomicDEX mobile is a seperate process, one of the service providers like @PTYX or @siu - Chainmakers have to be contacted(edited)
1
TonyL11-Oct-19 03:47 AM
@Trusty Do you have your seed phrase recorded somewhere?
Trusty11-Oct-19 07:59 AM
Hi, @TonyL No
dudezmobi11-Oct-19 08:07 AM
Install/update issue is back?
Same problem on my android
Black screen
Trusty11-Oct-19 08:07 AM
I know I should have it but I can't find it. I can't remember if I don't write it down or I don't know where it is. I know it's my fault, I'd just like to know if it's still possible to recover it.
gcharang11-Oct-19 08:09 AM
@dudezmobi if you have the seed phrase backed up, re install should fix it
@Trusty did you reinstall already, or the version with black screen still on your phone?
Trusty11-Oct-19 08:15 AM
still in my phone, I can't reintall because I have no seed
gcharang11-Oct-19 08:19 AM
@Trusty let me find out if it is possible
will ping you once I know something
Os android
Atomicdex version 0.2.1
After updating from playstore BLACK screen happens and cannot continue operation.
need to uninstall application to fix issue.
wl11-Oct-19 08:57 AM
Is it secure to open AtomicDex with verus seed?
For convenience sake it's much better to claim rewards on mobile phone
TonyL11-Oct-19 09:06 AM
Hi @wl there are no known vulnerabilities in AtomicDEX mobile
wl11-Oct-19 09:08 AM
Ok
Oszy11-Oct-19 09:39 AM
if it's a new seed created with verus agama after yes
wl11-Oct-19 09:54 AM
I downloaded the Exodus wallet for Android and their ux is absolutely simple, functional and beautiful... You could take some guidelines from them (i'd like the power of atomic swaps with some easy to use beautiful design)...
Oszy11-Oct-19 09:56 AM
I am sure there will be UI/UX improvements once the backend is fully functional
Market Maker 2 is the name of the networking layer of Komodo's atomic swap protocol. It connects peers and enables decentralized order matching.
Oszy11-Oct-19 07:04 PM
tech level? atomicdex = 100, mcaffee = 10
smk762 - dracocanis ominator11-Oct-19 07:04 PM
it's also built on open source backend so anyone can create a gui/tui or swap supported coins in CLI
liqdmetal11-Oct-19 07:44 PM
excellent
Markus11-Oct-19 08:23 PM
got a timed out swap kmd btc
74359d22-400e-44c4-a0ea-5b7af0c8fd8d
x77x12-Oct-19 02:36 AM
Exodus looks good, and is very simple to use. I'm not a fan of their in wallet exchange (somewhat expensive). Also, Exodus has been around for a long time time, AtomicDEX will come around.
GuilouGuilouOTE12-Oct-19 07:12 AM
Hi everyone,
How can I show you a screenshot of a display error (in the display of the amount of coin in the DEX/Exchange section) that I have on my phone since the first versions of AtomicDEX ?
I would like to know if this is something you know of or if you need more informations from me
It seems I have not the rights to add a screenshot here
Thanks
Oszy12-Oct-19 08:27 AM
you can upload it to a site like imgur.com and link the uploaded image here
ca33312-Oct-19 09:31 AM
@GuilouGuilouOTE can you please share your logs with us and provide additional informations such as app-language, operating system and version, app-version (from settings page), screenshot of the error (uploaded as @Oszy adviced). This will be very helpful - thanks!
Mr.Cryptodude12-Oct-19 09:48 AM
Any new projects moving / building on KMD, Or any exchanges / wallet providers integrating the DEX technology ?
t0sma12-Oct-19 10:03 AM
Good to have now the unlock button in case a failed swap. Tried it successfully right now after a failed swap between RVN and KMD
1
gcharang12-Oct-19 10:19 AM
@GuilouGuilouOTE you can send a direct message to me with the logs and screenshot
(you can upload images in DM)
Oszy12-Oct-19 09:48 PM
@BobZilla Please backup your seed phrase, uninstall the application, and re-install from the app store(edited)
this will solve the black screen issue(edited)
BobZilla12-Oct-19 09:50 PM
Hello I have black screen issue after recent update,, sorry if it has been discussed already I just joined here(edited)
Oszy12-Oct-19 09:51 PM
see above please
a simple re-install should fix your issue, make sure you have your seed backed up, you will need to re-enter it during setup
BobZilla12-Oct-19 09:52 PM
I will try an install,, sorry I am trying to find where it is discussed but a lot going on,, asking for logs and such but in my case it's ot running so that would not be possible
Oszy12-Oct-19 09:54 PM
the automatic update process creates this "black screen" bug, always do a clean install when you can
BobZilla12-Oct-19 09:56 PM
OK I will go install fresh and I'm sure it will fix it since you guys are aware of it,, and I will keep that in mind for next time.. Thanks for your help
TonyL12-Oct-19 09:57 PM
App update should work fine without uninstalling on the next update (v. 0.2.2)(edited)
BobZilla12-Oct-19 09:58 PM
No worries,, I will let it try but if I have a problem I know what to do now. I was going to try a re-instal anyway but I wanted to reach out to this community before I mucked things up further.
1
Oszy12-Oct-19 10:02 PM
@TonyL lets hope because there was always an issue with the auto-update so far i had to uninstall every time
BobZilla12-Oct-19 10:07 PM
FYI guys,,, I have just successfully re-installed and everything is good now,, thanks again.
3
TonyL12-Oct-19 10:11 PM
@Oszy Thats strange, version from like a 0.1.6 till 0.2.1 updated fine on my side and nobody reported about update problems for a long time (before this black screen issue happened). Feel free to report if you notice any glitches on update
BobZilla12-Oct-19 10:20 PM
I never had a problem until this latest update,, I have not been using it from the start but I think it has updated a few times previously.
criptobear13-Oct-19 09:50 AM
I have it updated automatically and last two times it did it went black I have Android
smk762 - dracocanis ominator13-Oct-19 09:54 AM
uninstall, reboot, install - should work
do you have seed saved?
Markus13-Oct-19 10:21 AM
@Oszy I just had to reinstall the latest update never before, always worked fine until now
Tommy $NIX13-Oct-19 04:54 PM
Is NIX ghost protocol integrated in this beta?
PTYX13-Oct-19 05:43 PM
No, the NIX ghost protocol is something separate and it won't be implemented into the atomicdex directly
NNoperator13-Oct-19 06:54 PM
Does anyone have visibility into which coins will be added next? I would like to see more coins that have 700+ FCAS rating at flipsidecrypto.com(edited)
1
Dr.Terminus13-Oct-19 07:26 PM
happy Sunday all
I'm curious, is there discussion about what coins will be added to Atomic DEX next?
1
Oszy14-Oct-19 10:25 AM
This was a pretty quiet weekend, so everything works as intended? I see less and less report of issues with both mm2 and the gui, so stress test is imminent?
siu - Chainmakers14-Oct-19 11:32 AM
Seems so. I did a kmd/btc swap yesterday and it went through with absolutely no issues on first try. Its been long ago since i got a failed swap
1
Oszy14-Oct-19 12:20 PM
I did not have any failed, only timeouts due /maker went awol so everything seems to be good so far.
did a lot kmd/vrsc, kmd/btc recently
2
ca33314-Oct-19 02:16 PM
yes - stress test date is close - our marketing team will likely provide the details this week
we are very grateful for all the feedback and issue-reports that we got - these really helped us nail down the last edge-case bugs.
@Dr.Terminus we will open the "listing discussion" after the stress-test.
3
1
27aume14-Oct-19 06:40 PM
Amazing! thank ca333
2
polycryptoblog14-Oct-19 11:07 PM
Anyone around that can send me some rick or morty RGV6XsZiMPKTYhJHuzHPaExBZU5iQehdSc
ca33314-Oct-19 11:08 PM
sent 7.77 of each @polycryptoblog
polycryptoblog14-Oct-19 11:15 PM
Cool thank you @ca333
Lost my old ones due to black screen reinstall
Didn’t save phrase as just test tokens
Seko15-Oct-19 08:18 AM
How is that possible? First the amount is debited to me, then there is a timeout and the amount remains disappeared.
The 181 VRSC are at the other address, but I didn't get 20 KMD in return.
gcharang15-Oct-19 08:23 AM
@Seko can you track the vrsc on an explorer? if they are in an address starting with "b", they should come back to you after 4 hours automatically(app should be active) or you will see a button that says "Recover funds" on the order(edited)
Seko15-Oct-19 08:24 AM
Yes, the address starting with b...
Thanks for the fast response @gcharang . That was not known yet. Thank you! I will give feedback as soon as it is back.
2
cyrelb15-Oct-19 08:39 AM
Some suggestions: 1) push or email when an order is executed / cancelled. 2) Canceled orders in the history 3) possibility to set a threshold to automatically claim KMD reward
2
ca33315-Oct-19 08:50 AM
Thanks for the suggestions - push-notifications are certainly coming in the near future @cyrelb - 3) too - as for 2) not sure if that makes sense since cancelled orders didn't execute any swap/blockchain logic - it might also fill your history with irrelevant data.


This is the latest date at which the aliens will have this level of research, due to the aliens gaining 1 research every day. However, the aliens may reach
this point earlier with sufficient bonus research from other sources.
The campaign's start date is 1 March, 2016.


You have {{format(player.energy)}} Energy{{format(tmp.en.exp)}} Due to Energy Overflow, your Energy is being divided by {{format(tmp.en.divPerSec)}} every second.
The Energy mechanic works like this: You generate 1 Base Energy/sec, then it's raised to the power of the exponent shown.
Positive Karma = Higher chance of getting more Gifts. Negative Karma = Higher chance of getting less Gifts.
You have {{format(player.sup.energy)}} Super-Energy{{format(tmp.sup.exp)}}
{{auto_data[x].title}}
You have {{format(player.sup.energy)}} Super-Energy{{format(tmp.sup.exp)}}, which adds {{format(tmp.sup.enEff)}} levels to the first 3 Energy Upgrades. You have supercharged your Energy {{formatWhole(player.sup.times)}} times.
You have {{format(player.mega.energy)}} Mega-Energy{{format(tmp.mega.exp)}}, which adds {{format(tmp.mega.enEff)}} to the Energy & Super-Energy exponents.
You have {{formatWhole(player.mega.factories)}} Mega Factories, which increase the Mega-Energy exponent by {{format(tmp.mega.factoryEff)}}.
+{{formatWhole(tmp.skills[x].xpGain)}} XP (next at {{format(nextXP(x))}} {{skill_data[x].basedOn}})
Level: {{formatWhole(tmp.skills[x].lvl)}} (Next: {{formatWhole(tmp.skills[x].next)}} more XP)
{{skill_data[x].desc()}}
You have {{format(player.hyper.energy)}} Hyper-Energy{{format(tmp.hyper.exp)}}, which makes Energy Overflow {{format(tmp.hyper.enEff.times(100))}}% weaker, and adds {{format(tmp.hyper.enEff2)}} to all previous Energy exponents.
You have split {{formatWhole(player.hyper.splitAtoms)}} atoms, which adds {{format(tmp.hyper.powerToExp)}} to the Hyper-Energy exponent. You have put all your energies into the Hypertube {{formatWhole(player.hyper.times)}} times.
WARNING: Each Hyper Upgrade level decreases the Hyper-Energy exponent by {{format(tmp.hyper.upgDecExp)}}. (Currently: -{{format(tmp.hyper.totalUpgs.times(tmp.hyper.upgDecExp))}})
You have {{format(player.fortune.energy)}} Fortune Energy{{format(tmp.fortune.exp)}}
Your best Energy exponent in an Unfortunate run is {{format(player.fortune.furthest)}}, which adds {{format(tmp.fortune.furthestToExp)}} to the Fortune Energy exponent.
You have {{formatWhole(player.fortune.gifts)}} Gifts, which multiply the Fortune Energy exponent by {{format(tmp.fortune.eff1)}} and reduce the Mega Energy effect softcap's power by {{format(tmp.fortune.eff2.times(100))}}%.