Library reference¶
Source-derived reference for the library declarations. All entries show their source location; supported author and host interfaces have reviewed descriptions.
Alphabetical symbols · Alphabetical members
Actions¶
askAboutAction— internalattachAction— internalboardAction— internalcloseAction— internalconsultAction— LOOK UP X IN Y and CONSULT Y ABOUT X. The thing is the direct object and the topic the indirect one, so a Consultable answers for itself.detachAction— internaldetachPartAction— internaldialogueTurn— internaldoffAction— internaldrinkAction— internaldropAction— internaleatAction— internalenterAction— internalexamineAction— internalflipAction— internalgetOffAction— internalgiveAction— GIVE X TO Y, and SHOW X TO Y. A library with actors and no way to hand one of them anything is a library that has not met a game: the author game's whole ending is Becky giving Zoé the tape. The default is a refusal, because what an actor does with a thing is the game's business and not vhyl's — but the action exists, so a Doer can catch it and a topic can answer it.goAction— internalinventoryAction— internallieAction— internallieOnAction— internallockAction— internallookAction— internallookBehindAction— internallookUnderAction— LOOK BEHIND and LOOK UNDER. What is behind a thing is out of sight, so this is how you find it — the leaflet behind the box and the note under the book.openAction— internalpourIntoAction— internalpressAction— internalpushDirAction— internalputBehindAction— internalputInAction— internalputOnAction— internalsayAction— -------------------------------------------- verbs with words for objectsscoreAction— internalsenseAction— internalsetToAction— SET DIAL TO. The word is a token, not an entity, so the rule binds it as a part of speech and the action reads the text. showAction— internalsitAction— internalsitOnAction— internalstandAction— internalstandOnAction— internaltakeAction— internaltellAboutAction— internalthinkAboutAction— THINK ABOUT X: a mere reference to something, which need not be present.turnAction— TURN X, which the pencil sharpener needs.turnOffAction— internalturnOnAction— internalundoAction— internalunlockAction— internalwaitAction— internalwearAction— internalwriteOnAction— internal
Classes¶
AccompanyingInTravelState— Temporary state used while an actor follows a leader through travel.AccompanyingState— An ActorState that follows an explicitly stored leader during travel.Action— Defines argument requirements and the execution and reporting hooks for a command.Actor— A character that participates in travel, conversation and actor states.ActorState— Behaviour and presentation state associated with an Actor.AdjRun— A run of them, so a phrase may carry as many as it likes.AdjWord— An article, which a player types without thinking about it and every parser in the genre accepts. vhyl refusedTAKE THE TOKENandASK ZOÉ ABOUT THE TAPEuntil an author game tried to write a walkthrough in English. A production of its own rather than a word in each rule, so the three noun phrase shapes stay three. SpelledanArticlebecausearticleis already the language module's a/an chooser, and a production shares a namespace with a function.AgendaItem— A scheduled item of actor behaviour.Attachable— A thing that can attach to another entity.AttachableComponent— A component that can be attached to another entity.BagOfHolding— An openable container with a distinct bulk policy.Bed— A platform supporting lying posture.Booth— A container that an actor may enter.Button— A control operated by pressing.Chair— A platform supporting sitting posture.Command— Carries parser captures, resolved arguments and reports through an action.Component— A thing whose identity and placement are tied to another object.Consultable— A thing that can answer consult actions.Container— A Thing whose contents participate in containment and capacity rules.ConvAgendaItem— An agenda item that accounts for conversation activity.Conversation— A host-driven choice conversation with a stable id and target.Daemon— A scheduled event that repeats at its interval.DarkRoom— A room that requires another light source to be visible.Decoration— Scenery normally omitted from room listings.Dial— A control whose setting can be changed by the player.DialogueChoice— A selectable conversation option with stable identity and availability rules.DialogueContext— The asker and active conversation passed to choice hooks.DialogueError— Optional host-driven conversations. Include after vhyl.t. Copyright (c) 2026 John Cunningham. MIT License; see LICENSE.Distant— Scenery visible but outside ordinary reach.Doer— Redirects or customises a resolved action for selected objects.Door— A travel connector shared by rooms through connects relation rows.Enterable— A fixed object an actor can enter.Event— Schedules a property call on an owner after completed turns.EventList— Cycles, stops or exhausts an authored list of values.Fixture— Fixed furniture or scenery within a location.Food— A thing that can be eaten.Fuse— A one-shot scheduled event.Gadget— Base for manipulable controls such as switches and buttons.GoodbyeChoice— Standard choice that closes a conversation.GuidedTourState— An accompanying state that leads another actor toward a tour destination.Heavy— A thing too heavy for ordinary taking.HermitActorState— An actor state that declines ordinary conversation.Immovable— A thing that cannot be moved by ordinary actions.InitObject— An object whose execute hook runs during vhylStart.Intangible— A perceivable thing that cannot be touched.InternalSpeaker— A private conversational voice bound to its asker through voiceOwner.Lever— A control with lever-specific action reporting.LiteralPhrase— ----------------------------------------------------- literals and topicsLockableContainer— An openable container with lock state.Message— A message keyed by stable id, with text or a computed say method.MultiLoc— A fixture present in multiple rooms through presentIn relation rows.Noise— A sound present in one or more rooms.NounPhrase— internalOdour— A smell present in one or more rooms.OpenableContainer— A container that can be opened and closed.OutdoorRoom— A room lit by the sky under the default world policy.Passage— A travel connector without a door's open and closed state.PathPassage— A passage whose bulk policy permits a path-like route.Platform— A surface on which an actor may stand.PreCondition— Checks or establishes a requirement before an action executes.PreinitObject— internalRearContainer— A thing that receives objects placed behind it.Report— ------------------------------------------------------------- reportingRoom— A lit-by-default location whose exits and contents are relation rows.Scene— Tracks a condition-driven interval in the world.SecretDoor— A door initially hidden from ordinary observation.Sensed— A sensed phenomenon that can be present in multiple rooms.SenseEvent— A recurring event conditioned on the player's location.StairwayDown— A connector representing travel downward.StairwayUp— A connector representing travel upward.State— Synchronises vocabulary with an observed property condition.SubComponent— A subordinate physical part of another thing.Surface— A fixed surface on which things can rest.Switch— A binary control operated by turn-on and turn-off actions.Thing— Base entity for physical and describable things in the adventure world.Topic— A vocabulary-resolved subject used by ask and tell dialogue.TopicDialogueChoice— Explicitly adapts a TopicEntry into a choice conversation.TopicEntry— An ask or tell response matched to a topic and optionally an actor state.TravelConnector— A traversable entity that can control staging, passage and travel reports.Unthing— A referable absence with a custom explanation.Vehicle— A boardable thing that can carry an actor through travel.Verb— Maps a stable structured action code to an Action and optional direction.Wearable— A thing that can be worn and removed.
Dictionaries¶
vhylDict— internal
Enums¶
Direction— internaldobjRole— internalposIn— internalstanding— internaltoken— Public declarations for vhyl: relations, vocabulary and verification ranks. Copyright (c) 2026 John Cunningham. MIT License; see LICENSE.
Functions¶
accompanists— The actors in this room travelling with this leader, breadth first. A state says whether it comes along, and a guided tour says so only for the leg of the tour it is on — which is what stops a guide following the player off the route.account— internalaccountAbout— internalaccountAs— One account, at a given place in the report order.accountDefault— internalactOnce— One object's worth of a command: redirect, refuse, act.addReport— Put a report on the command's list.addToAgenda— internalaName— internalAName— internalapplyCase— internalarticle— ------------------------------------------------------------- the wordsawardPoints— Award points once for a named achievement.bestReading— internalbeVerb— "is" or "are", and "was" or "were".blockingFor— The nearest shut container between the player and this thing, or nil. Nearest first, because opening the outer one is what lets you reach the inner one, and the loop comes back for the rest.bothOf— What is in both lists.bulkIn— How much is already inside something.capitalised— internalcarried— internalcarriedBulk— How much the player has in their arms, for a passage with a limit.chooseOne— internalclearMessageParams— internalconjugate— One verb, agreeing with whatever the last parameter named. English needs an -s on a third-person singular present verb and nothing anywhere else, which is the whole of the agreement most library messages need. A verb whose past is not "-ed" says so.connectorHere— A connector is in scope from either of the rooms it joins.contractionName— it's, you're, the keeper's* — the contraction of a name and "to be".converse— ASK X ABOUT Y and TELL X ABOUT Y.defaultDescReport— The same, for a description: You see nothing unusual. Dropped when anything else is said, but kept for an implied command, because a description is an answer rather than an acknowledgement.defaultReport— internaldeliverTopic— Execute the exact selected entry; both ASK/TELL and menu adapters use it.describeRoom— internaldestinationOf— Where this exit ends up, following a connector if there is one.dialogueContext— internaldialogueEnd— internaldialogueSay— internaldialogueText— Keys stay stable; optional literal Message.text is terminal/example fallback. Fallback text and message activity must be observational, like availability.dirName— internaldoBoard— internaldoEnter— internaldoGetOff— internaldoGo— internaldoInventory— ---------------------------------------------------------- action helpersdoorDestination— The room on a door's far side, from the one you are standing in.doPush— internaldoPutIn— internaldoPutOn— internalendedCommand— internalendingFor— The verb endings, by the string inside the braces. Answers nil for a word that is not one.expandAll— internalexpandBody— internalexpandNested— A nested[...]inside a tense choice, which is a parameter in brackets.expandOne— Expand one{...}, given what is inside it. The order matters: a tense choice, then a verb ending, then an irregular verb, then the format table, and only then the fallback that treats an unknown word as a regular verb — which is vhyl's own addition and is what lets a message write{take}instead oftake{s}.extraReport— An extra line that does not suppress a default.findDoer— The Doer that catches this command, if any.finishAccompaniment— internalfinishCommand— The account and the turn, once, however many objects the command named.finishGame— End the game. The turn that calls this finishes; nothing after it runs.firstNamed— internalformKind— internalgetLiteral— internalgetTopic— internalgetTopicText— internalhere— Return the room containing the player.holds— internalinPast— ---------------------------------------------------------- the expanderinScope— internalirregularVerb— internalisAre— "is" or "are", for a count. Agreement, as far as vhyl needs it.isAreFor— The same, for one thing whose name is grammatically plural.isDark— A room you can see in: lit itself, or by something in it or carried.isVerbWord— Whether a word left of a|is a verb rather than one half of a choice.itName— A pronoun for something that is not the player: he, her, it, them.kindIsPronoun— internalkindIsSubject— Whether this kind is the sentence's subject.kindMeansActor— Whether this kind implies the actor rather than taking a selector.kindNamesNothing—{way}names no object, so it must not disturb the antecedent.kindReflexes— Whether this kind has a reflexive form to fall back on.listContents— internallistedPhrases— internallistSensed— What can be sensed here, listed after the room.litBy— internalliteralText— The words of a literal phrase, joined back into a line.mainReport— The main result of the action. There may be several.meetPreConds— internalmessageFor— The message that answers to this id, or nil.msgFor— The text of a message about one or two objects, read rather than said.refusesanswers a sentence for the turn to print, so it needs the words rather than the side effect. A message with no text — one whose body emits — has nothing to read, and answers nil so the caller falls back to whatever it would have said anyway.nameList— internalnestedIn— What the player is in or on, if anything short of the room.nomName— The subject form: you, I, the keeper.noteDone— internalnoteSeen— A displayed discovery is world knowledge, including for a host using only semantic events. Do not infer this from arbitrary message subjects.noteSentenceEnd— internalnoteSubject— Note that a parameter named this entity, for the verb and the pronoun after it.objName— The object form: you, me, the keeper.oppositeOf— internalparamOf— The entity a{...}parameter names, by the word the message used.pcPerson— The person the player character is written in, and whether that person takes a plural verb. "I", "you", "we" and "they" all take the bare form; only a third-person singular takes the -s.pcWord— internalphraseCandidates— The entities a phrase names: every word in it has to name them.possAdjName— internalpossNounName— mine, yours, his, hers, its, theirs* — the form that stands alone.postureName— internalprepFor— The English word for a spatial position. vhyl says a thing restsposOnanother; which preposition that is, and that English has one at all, is this module's business.proIsPlural— Whether this thing takes a plural verb: they are, it is.pronounSet— ------------------------------------------------------- the name shapesproPossAdj— his/her/its/their — the form that qualifies a noun.proPossNoun— his/hers/its/theirs — the form that stands alone.proReflexive— himself/herself/itself/themselves.proWord— he/she/it/they, and him/her/it/them.rankOf— internalreadingRank— internalrecover— internalreflexiveName— myself, yourself, himself, herself, itself, themselves*.relocateActor— A movement fact is independent of prose and visibility. Fiat relocation uses this too, but deliberately gathers nobody and consumes no action.removeFromAgenda— internalreplaceAction— internalreportAfter— Moved after every main report, however early it is added.reportBefore— internalreportFailure— A main report that also marks the command a failure, so a caller that ran it as an implied action knows not to go on.roomFor— Whether one more thing fits. A capacity of 0 means no limit is stated.roomSpecials— internalrunActors— Every event that is due, in declaration order.runCommand— internalrunCommandOver— internalrunEvents— internalrunScenes— Run every turn: start and stop whatever scenes are due.sayAbout— Say an id about an object and a list of things, or a word.sayFor— Say an id about one or two objects, with no command in hand.sayMsg— Say what this id means.cis the command, so a message that wants the objects has them; one that does not ignores it. An unknown id prints the id itself rather than nothing, because a message that silently says nothing is the hardest kind to find.sayReports— internalseeInto— Whether what is inside can be seen. Open, or not shuttable, or shut but transparent — a glass jar with the lid on shows what is in it.setMessageParam— internalsplitParam— internalsyncStates— Bring every state's vocabulary into line with the world. Idempotent: a state whose word has not changed writes nothing, so this costs one property read per state on a turn where nothing happened.takePosture— ------------------------------------------------------------- posturestellApart— internalthatName— internaltheName— ------------------------------------------------------- naming helpersTheName— internaltopicAvailableTo— internaltopicFor— internaltryImplied— internaltSel— internalverbEnding— internalverbFor— The verb this code names, or nil.verbForPosture— The verb that puts somebody into a posture, for an implied command.vhylAct— Submit a structured verb code and entity arguments to the normal action cycle.vhylStart— Initialise the world once, place the player and describe the initial room.vhylTurn— Submit parser tokens to the library's text command cycle.visible— Visible means reachable without opening anything: every container between the item and the room has to be open. One walk up the containment table.wayFrom— internalwayWord— internalwearTravelState— internalwithPast— The tense a{...!}parameter and quoted speech pin themselves to.withPresent— internalwithTense— internalwordFor— The word a kind produces for a thing.
Grammar¶
adjRun(last)— internaladjRun(more)— internaladjWord(fromVocab)— internalanArticle(anOne)— internalanArticle(aOne)— internalanArticle(theOne)— internalcommand(askAbout)— internalcommand(attachTo)— internalcommand(board)— internalcommand(climbIt)— internalcommand(closeIt)— internalcommand(consultCmd)— internalcommand(detachFrom)— internalcommand(detachPart)— internalcommand(drinkIt)— internalcommand(drop)— internalcommand(eatIt)— internalcommand(enterIt)— internalcommand(examine)— internalcommand(flipIt)— internalcommand(gDown)— internalcommand(gEast)— internalcommand(get)— internalcommand(getOff)— internalcommand(gIn)— internalcommand(giveTo)— internalcommand(gNE)— internalcommand(gNorth)— internalcommand(gNW)— internalcommand(gOut)— internalcommand(gSE)— internalcommand(gSouth)— internalcommand(gSW)— internalcommand(gUp)— internalcommand(gWest)— internalcommand(inventory)— internalcommand(lieDown)— internalcommand(lieOn)— internalcommand(lightIt)— internalcommand(listenTo)— internalcommand(lockIt)— internalcommand(lockWith)— internalcommand(look)— internalcommand(lookAt)— LOOK AT X is what a good many players type, and vhyl had only X and EXAMINE. Badness, because LOOK on its own is the room.command(lookBehind)— internalcommand(lookUnder)— internalcommand(lookUpIn)— internalcommand(openIt)— internalcommand(ordered)— ---------------------------------------------------------------- parsingcommand(pourIn)— internalcommand(pourInto)— internalcommand(pressIt)— internalcommand(pullIt)— internalcommand(pushBtn)— internalcommand(pushE)— internalcommand(pushN)— internalcommand(pushS)— internalcommand(pushW)— internalcommand(putBehind)— internalcommand(putIn)— internalcommand(putOn)— internalcommand(removeIt)— internalcommand(rideIt)— internalcommand(sayCmd)— internalcommand(scoreCmd)— internalcommand(setTo)— internalcommand(showTo)— internalcommand(sitDown)— internalcommand(sitOn)— internalcommand(smellIt)— internalcommand(standOn)— internalcommand(standUp)— internalcommand(take)— internalcommand(takeOff)— internalcommand(tellAbout)— internalcommand(thinkAbout)— internalcommand(turnIt)— internalcommand(turnOff)— internalcommand(turnOn)— internalcommand(turnToo)— internalcommand(typeOn)— internalcommand(undoCmd)— internalcommand(unlockIt)— internalcommand(unlockWith)— internalcommand(waitCmd)— internalcommand(wearIt)— internalcommand(writeOn)— internalcommand(x)— internalliteralPhrase(moreWords)— internalliteralPhrase(oneWord)— internalliteralPhrase(quoted)— internalnounPhrase(allOf)— internalnounPhrase(andMore)— internalnounPhrase(artAndMore)— internalnounPhrase(artOne)— internalnounPhrase(everything)— internalnounPhrase(herOne)— internalnounPhrase(himOne)— internalnounPhrase(itOne)— internalnounPhrase(one)— One thing, with or without an article.nounPhrase(themOne)— internalsimpleNoun(adjs)— internalsimpleNoun(bare)— internalsimpleNoun(nounQuoted)— internalsimpleNoun(nounThen)— internalsimpleNoun(ofLink)—ofjoins two simple names: piece of paper, small pile of dry straw. The thing named is the one both halves name, which is what a game states by giving it both words.simpleNoun(quotedNoun)— internal
Macros¶
FirstPerson— internalrankAlready— internalrankDangerous— internalrankIllogical— internalrankImplicit— internalrankLogical— internalrankNever— internalrankNonObvious— internalrankNotNow— internalrankSelf— internalrankUnlikely— internalSecondPerson— internalThirdPerson— internalTypeInt— internalTypeSString— internal
Messages¶
enActNoVerb— Built-in message id'act.noverb'.enActOutOfReach— Built-in message id'act.outofreach'.enAttachAlready— Built-in message id'attach.already'.enAttachCannot— Built-in message id'attach.cannot'.enAttachOk— AttachmentenAttachWrong— Built-in message id'attach.wrongpair'.enBehindFound— Built-in message id'lookbehind.found'.enBehindNothing— Built-in message id'lookbehind.nothing'.enBoardAlready— Built-in message id'board.already'.enBoardCannot— Built-in message id'board.cannot'.enBoardOk— Riding and enteringenCloseSeveral— Built-in message id'close.ok.several'.enConsultCannot— Built-in message id'consult.cannot'.enConsultNothing— Built-in message id'consult.nothing'.enDecoration— Built-in message id'decoration.notimportant'.enDetachFixed— Built-in message id'detach.fixed'.enDetachNot— Built-in message id'detach.notjoined'.enDetachOk— Built-in message id'detach.ok'.enDetachPart— Built-in message id'detach.part'.enDialogueGoodbye— Optional dialogue module's ordinary exit label.enDrinkCannot— Built-in message id'drink.cannot'.enDrinkOk— Built-in message id'drink.ok'.enDropSeveral— Built-in message id'drop.ok.several'.enEatCannot— Built-in message id'eat.cannot'.enEatOk— Built-in message id'eat.ok'.enEnterCannot— Built-in message id'enter.cannot'.enEnterLocked— Built-in message id'enter.locked'.enEnterShut— Built-in message id'enter.shut'.enExamineEmpty— Examining and describingenExamineInIt— Built-in message id'examine.init'.enExamineOnIt— Built-in message id'examine.onit'.enFlipCannot— Built-in message id'flip.cannot'.enFlipOff— Built-in message id'flip.off'.enFlipOn— GadgetsenGetOffNothing— Built-in message id'getoff.nothing'.enGetOffOff— Built-in message id'getoff.off'.enGetOffOutOf— Built-in message id'getoff.outof'.enGiveNotActor— Handing something over, and holding it up.enGiveRefused— Built-in message id'give.refused'.enGoBarred— TravelenGoTooBulky— Built-in message id'go.toobulky'.enImmovable— Built-in message id'immovable.cannot'.enIntangible— Built-in message id'intangible.cannot'.enInventoryItem— Built-in message id'inventory.item'.enInventoryWorn— Built-in message id'inventory.itemworn'.enListenNothing— SensesenLockAlready— Built-in message id'lock.already'.enLockCannot— Built-in message id'lock.cannot'.enLockOk— Built-in message id'lock.ok'.enOpenLocked— Built-in message id'open.locked'.enOpenReveals— Built-in message id'open.reveals'.enOpenSeveral— Built-in message id'open.ok.several'.enOrderRefused— Built-in message id'order.refused'.enParseWhichOne— One candidate in a disambiguation question, told apart when it has to be.enPostureAlready— Built-in message id'posture.already'.enPostureCannot— Built-in message id'posture.cannot'.enPostureLie— Built-in message id'posture.lie'.enPostureNowhere— Built-in message id'posture.nowhere'.enPostureSit— Built-in message id'posture.sit'.enPostureStand— Built-in message id'posture.stand'.enPostureWont— Built-in message id'posture.wontallow'.enPourNothing— Built-in message id'pour.nothing'.enPourOk— Built-in message id'pour.ok'.enPourWontTake— Built-in message id'pour.wontake'.enPrecondCannot— Built-in message id'precond.cannot'.enPrecondClosed— Built-in message id'precond.closed'.enPrecondEmpty— Built-in message id'precond.empty'.enPrecondFirst— Built-in message id'precond.first'.enPrecondHeld— Built-in message id'precond.held'.enPrecondOpen— Built-in message id'precond.open'.enPrecondReach— Built-in message id'precond.reach'.enPrecondUnlocked— Built-in message id'precond.unlocked'.enPrecondVisible— Built-in message id'precond.visible'.enPrecondWorn— Built-in message id'precond.worn'.enPressNothing— Built-in message id'press.nothing'.enPressOk— Built-in message id'press.ok'.enPullDown— Built-in message id'pull.down'.enPullUp— Built-in message id'pull.up'.enPushCannot— Built-in message id'push.cannot'.enPushOk— PushingenPushThrough— Built-in message id'push.throughconnector'.enPutBehindNo— Built-in message id'putbehind.cannot'.enPutBehindOk— Built-in message id'putbehind.ok'.enPutInCannot— Built-in message id'putin.cannot'.enPutInItself— Built-in message id'put.initself'.enPutInNoRoom— Built-in message id'putin.noroom'.enPutInOk— Built-in message id'putin.ok'.enPutInShut— Built-in message id'putin.shut'.enPutOnCannot— Built-in message id'puton.cannot'.enPutOnNoRoom— Built-in message id'puton.noroom'.enPutOnOk— Putting things placesenPutWontMove— Built-in message id'put.wontmove'.enReachTooFar— Built-in message id'reach.toofar'.enReachTooHigh— Built-in message id'reach.toohigh'.enRideWontGo— Built-in message id'ride.wontgo'.enRoomActorHere— Built-in message id'room.actorhere'.enRoomAndClosed— ------------------------------------------- sentences, not fragmentsenRoomAndHolding— Built-in message id'room.andholding'.enRoomEndOfItem— Built-in message id'room.endofitem'.enRoomEnter— Built-in message id'room.enter'.enRoomName— Built-in message id'room.name'.enRoomThereIs— Built-in message id'room.thereis'.enSayNothing— Built-in message id'say.nothing'.enSayOk— Built-in message id'say.ok'.enScoreGained— Built-in message id'score.gained'.enScoreGained1— Built-in message id'score.gained1'.enScoreIsWhole— Score.c.way_carries the number.enSetBadValue— Built-in message id'set.badvalue'.enSetCannot— Built-in message id'set.cannot'.enSetOk— Built-in message id'set.ok'.enShowNothing— Built-in message id'show.nothing'.enSmellNothing— Built-in message id'smell.nothing'.enStageNotThere— Built-in message id'stage.notthere'.enTakePart— Text, not a body:refusesreads it rather than saying it.enTakeSelf— Picking yourself up.enTakeSeveral— Built-in message id'take.ok.several'.enTalkHermit— Built-in message id'talk.hermit'.enTalkNotActor— ActorsenTalkNoTopic— Built-in message id'talk.notopic'.enThinkAbout— Built-in message id'think.about'.enTravelArrives— Built-in message id'travel.arrives'.enTravelArrivesWay— Built-in message id'travel.arrivesway'.enTravelComesWith— Built-in message id'travel.comeswith'.enTravelLeadsWay— Built-in message id'travel.leadsway'.enTravelLeaves— Built-in message id'travel.leaves'.enTravelLeavesWay— Built-in message id'travel.leavesway'.enTravelOpens— Built-in message id'travel.opens'.enTurnNothing— Built-in message id'turn.nothing'.enUnderFound— Built-in message id'lookunder.found'.enUnderNothing— Looking under and behindenUnlockAlready— Built-in message id'unlock.already'.enUnlockOk— Built-in message id'unlock.ok'.enUnlockWrong— Built-in message id'unlock.wrongkey'.enUnthingGone— Built-in message id'unthing.gone'.enVagueTopic— Said when an action needs an object the player did not name.enWaitOk— Letting a turn pass.enWriteOnCannot— Built-in message id'writeon.cannot'.msgAlreadyHave— Built-in message id'take.already'.msgAlreadyLit— Built-in message id'turnon.already'.msgAlreadyOpen— Built-in message id'open.already'.msgAlreadyOut— Built-in message id'turnoff.already'.msgAlreadyShut— Built-in message id'close.already'.msgAlreadyWorn— Built-in message id'wear.already'.msgCannotGo— Built-in message id'go.nowhere'.msgCarrying— Built-in message id'inventory.some'.msgClosed— Built-in message id'close.ok'.msgDarkRoom— Built-in message id'room.dark'.msgDoorShut— Built-in message id'go.shut'.msgDropped— Built-in message id'drop.ok'.msgEmptyHanded— Built-in message id'inventory.none'.msgFixed— Built-in message id'take.fixed'.msgGameEnded— vhyl declares these properties and gives them no words. The words are English, so they are here. A game loading vhyl without a language module gets a library that describes nothing, which is correct rather than broken: it has not said what language it is in.msgLeadsNowhere— Built-in message id'go.leadsnowhere'.msgNoSuchThing— Built-in message id'parse.noref'.msgNotCarried— Built-in message id'drop.notheld'.msgNotCloseable— Built-in message id'close.cannot'.msgNotDousable— Built-in message id'turnoff.cannot'.msgNothingHappens— Built-in message id'action.nothing'.msgNothingOdd— Built-in message id'examine.plain'.msgNothingToUndo— Built-in message id'undo.none'.msgNotLightable— Built-in message id'turnon.cannot'.msgNotOne— Built-in message id'parse.notone'.msgNotOpenable— Built-in message id'open.cannot'.msgNotUnderstood— Built-in message id'parse.nomatch'.msgNotWearable— Built-in message id'wear.cannot'.msgNotWorn— Built-in message id'doff.notworn'.msgOpened— Built-in message id'open.ok'.msgPitchBlack— Built-in message id'light.out'.msgPlayerDesc— Built-in message id'player.desc'.msgRecovered— Built-in message id'turn.failed'.msgSwitchedOff— Built-in message id'turnoff.ok'.msgSwitchedOn— Built-in message id'turnon.ok'.msgTaken— Every sentence vhyl says, with an id. A game overrides one by declaring its own Message with the same id and a higher priority — it does not need to know the name of the object below.msgTakenOff— Built-in message id'doff.ok'.msgUndone— Built-in message id'undo.ok'.msgWhichDoYouMean— Built-in message id'parse.which'.msgWorn— Built-in message id'wear.ok'.
Objects¶
actArgs— The command an action intent fills in. One command runs at a time, so this is reused rather than allocated, for the same reasonmsgArgsis.allDirections— ------------------------------------------------------------- directionsdialogueUI— An optional library module may handle structured UI intents.enOpenClosed— internalexpandCtx— internalgameMain— Per-game startup settings supplied by a modify gameMain declaration.gameOver— Set when the game is over, with what to say.impliedArgs— The command an implied action runs in, so the outer one is not disturbed.language— internallastNamed— internallistenAction— internalmessageParams— internalmoveSlash— ---------------------------------------------------- one parameter bodymsgArgs— internalmultiLocPreinit— A MultiLoc names the rooms it stands in and vhyl writes the rows, for the same reason a door does: where a thing is belongs to the declaration, and turning that into table rows is the library's job.objClosed— Shut. Implies CLOSE.objEmpty— Nothing inside. Implies taking one thing out, and the loop does the rest.objHeld— Held directly by the player. Implies TAKE.objNotWorn— Not being worn. Implies TAKE OFF.objOpen— Open, if it is the kind of thing that shuts. Implies OPEN.objUnlocked— Unlocked. Implies UNLOCK, with no key named — the action finds one.objVisible— Visible. Nothing implies being able to see.player— The library player entity; place it by setting gameMain.initialRoom.score— internalsmellAction— internaltouchObj— internaltravelActions— --------------------------------------------------------- actor travelturnCount— The turn the game is on, counted from the first command.
Properties¶
badness— internalfirstTokenIndex— internallocation— internalnoun— internal
Relations¶
attachedTo— Records attachment between two entities.connects— Associates a door with every room from which it can be used.contains— Places an item in one container; read the inverse through location.dialogueActive— internaldialogueAsker— internaldialogueUsed— internaldialogueVoice— Binds a private speaker to its owner; voiceOwner is the inverse.exits— Connects rooms by a direction for travel.knows— Records explicit knowledge of another entity.presentIn— Places a MultiLoc in several rooms without changing containment.vocab— Assigns noun and adjective words to an entity.
Templates¶
Actor— internalAttachable— internalAttachableComponent— internalBagOfHolding— internalBooth— internalButton— internalComponent— internalContainer— internalDarkRoom— internalDecoration— internalDial— internalDistant— internalDoor— internalEnterable— internalFixture— internalFood— internalGadget— internalHeavy— internalLever— internalLockableContainer— internalMultiLoc— internalNoise— internalOdour— internalOpenableContainer— internalOutdoorRoom— internalPassage— internalPathPassage— internalPlatform— internalRearContainer— internalRoom— internalSecretDoor— internalSensed— internalStairwayDown— internalStairwayUp— internalSubComponent— internalSurface— internalSwitch— internalThing— Templates, so a declaration reads as a sentence.TravelConnector— internalVehicle— internalWearable— internal
Verbs¶
vAskAbout— Built-in verb code55.vAttach— Built-in verb code53.vBoard— Built-in verb code30.vClose— Built-in verb code24.vConsult— Built-in verb code49.vDetach— Built-in verb code54.vDetachPart— Built-in verb code40.vDialogueBegin— The integer codes are transport verbs, not speech-act categories.vDialogueRefresh— Built-in verb code82.vDialogueSelect— Built-in verb code81.vDoff— Built-in verb code33.vDown— Built-in verb code15.vDrink— Built-in verb code39.vDrop— Built-in verb code22.vEast— Built-in verb code12.vEat— A subject and a direction (60-69).vEnter— Built-in verb code31.vExamine— One subject (20-49).vFlip— Built-in verb code28.vGetOff— Built-in verb code5.vGive— Built-in verb code58.vIn— Built-in verb code16.vInventory— Built-in verb code2.vLie— Built-in verb code9.vLieOn— Built-in verb code45.vListen— Built-in verb code36.vLock— Built-in verb code42.vLook— Nothing to say (1-9).vLookBehind— Built-in verb code35.vLookUnder— Built-in verb code34.vNorth— Built-in verb code10.vOpen— Built-in verb code23.vOut— Built-in verb code17.vPourInto— Built-in verb code57.vPress— Built-in verb code29.vPushEast— Built-in verb code62.vPushNorth— Built-in verb code60.vPushSouth— Built-in verb code61.vPushWest— Built-in verb code63.vPutBehind— Built-in verb code52.vPutIn— Built-in verb code51.vPutOn— Two subjects (50-59).vSay— Built-in verb code46.vScore— Built-in verb code4.vShow— Built-in verb code59.vSit— Built-in verb code8.vSitOn— Built-in verb code44.vSmell— Built-in verb code37.vSouth— Built-in verb code11.vStand— Built-in verb code7.vStandOn— Built-in verb code43.vTake— Built-in verb code21.vTellAbout— Built-in verb code56.vThinkAbout— Built-in verb code48.vTurn— Built-in verb code25.vTurnOff— Built-in verb code27.vTurnOn— Built-in verb code26.vUndo— Built-in verb code3.vUnlock— Built-in verb code41.vUp— Built-in verb code14.vWait— Built-in verb code6.vWear— Built-in verb code32.vWest— Built-in verb code13.vWriteOn— Built-in verb code47.