Yaffaif console
12 years ago
General
Over at the newly formed Growing Games forums (go on, give it some love) Atticus Arc suggested documenting console commands so players could experiment with characters before the game content allowed it. Yaffaif is definitely in this iceberg state, as the starting area is being developed to prove out the game engine.
So, as teaser/cheater here are some things you can do using the console. FA may break this formatting, lets see:
Console commands
All console commands are entered in the command text box and start with '/'
(I'll add '~' at some point too).
The next character determines the operation:
? - query
= - assign
> - goto
+ - creation
The query and assign operations need parameters that identify an
object in the game, and then a getter/setter for that object.
$0 refers to the current player
'/' refers to the GameSpace, which is the root of all items and areas
A name in square brackets (such as [val1.village.hospital.kerry])
refers to an item/person by its id. Ids are typically formed from
the initial area names "val1", "village", the location "hospital",
and the object id "kerry" separated by '.'s.
Some detail of the structure of the game can be had by opening
the GameF.jar file in an archive utility (rather than running
the game) and looking at the game.xml file, and those it includes
in the area directory.
For a complete understanding of the various getters and setters
you need to refer to the Javadoc, but this is not available yet.
Get Values
Use the query '?' operator to display values.
Getters can be chained by separating names with '.'s.
How long is your hair?
/?$0.body.head.hair.lengthMm
+ $0.body.head.hair.lengthMm=30
How heavy are your boobs (total) in grams?
/?$0.body.bust.mass
+ $0.body.bust.mass=1515
How heavy are Kerry's boobs?
/?[val1.village.hospital.kerry].body.bust.mass
+ [val1.village.hospital.kerry].body.bust.mass=7579
Set Values
Use the assignment '=' operator to set values.
The last part after the last '.' is the variable to set.
The new value is supplied as a parameter in brackets.
The console performs auto type conversion as best it can to
strings, integers, booleans, and enums.
Note: Upper bounds to most numeric variables is Integer.MAX (2147483647)
Other objects can be referred to as parameters using the '/', '$', or '[]'
syntax. Multiple parameters can be separated by ','.
Internally these are converted to calls to getters and setters so
"body.bust.mass(2000)" becomes getBody().getBust().setMass(2000).
If the setter does not exist then an attempt is made to find a method
without the "set" prefix. So it is possible to call many other methods
this way.
You can get into a lot of strange (potentially game-breaking) situations
using the assignment operator!
Making 'Velour' a human male character (sort-of):
/=$0.persName.family(smith)
+ $0.persName.family(smith) returned true
/=$0.persName.given(john)
+ $0.persName.given(john) returned true
/=$0.name(John)
+ $0.name(John) returned true
/=$0.sex(male)
+ $0.sex(male) returned true
/=$0.species(human)
+ $0.species(human) returned true
/=$0.body.bust.moobs(true)
+ $0.body.bust.moobs(true) returned true
/=$0.body.bust.mass(100)
+ $0.body.bust.mass(100) returned true
But you'll still be dressed as a girl, and have a female build (apart
from the boobs fixed above)!
Transform your eyes into feline ones:
/=$0.body.head.eyes.species(cat)
+ $0.body.head.eyes.species(cat) returned true
Glow-in-the-dark player who never needs torches:
/=$0.lightSource(true)
+ $0.lightSource(true) returned true
Changing the player character to one of the NPCs:
NOTE: Here be dragons; may break quests, may just break.
/=/player([val1.village.hospital.kerry])
+ /player([val1.village.hospital.kerry]) returned true
Or:
/=/player([val1.village.pub.arthur])
And back (best put the NPC where you found them first):
/=/player([velour])
Moving
Use the goto '>' operator to teleport. This bypasses all the checks
normally performed with movement (combat, mobility, exits).
/>val1.mine.entrance
You leave the main room.
-- Mine entrance --
You are standing in the entrance to the old mine workings. Ferns and
small plants grow on the damp rough hewn walls where daylight penetrates.
Within a short distance the vegetation gives way to dark stone. The tunnel
stretches on into the hillside. There is a doorway, SouthEast, to the valley
head. There is a tunnel to the NorthWest.
Creation
Use the add '+' operator to create items from factories
The created item will be on the floor in the player's location.
A bacon butty:
/+food,baconButty
+ created Food:console1
The id of the new item is reported after the class name and the colon,
so you can modify it using assign:
Give it a new id:
/=[console1].id(mybutty)
+ [console1].id(mybutty) returned true
And a silly number of calories:
/=[mybutty].kcals(1000000)
+ [mybutty].kcals(1000000) returned true
A healing potion:
/+potion,healingPotion
+ created HealingPotion:console2
Make it maximum potency:
/=[console2].potency(1000)
A new weapon:
/+weapon,broadSword
Make some male clothes:
/+clothing,underpants
/+clothing,trousers
/+clothing,stringVest
/+clothing,flatCap
/+clothing,boots
/+clothing,shirt
Clothing created this way will always fit you when you first wear it.
Once you do it auto-fits to your current size.
So, as teaser/cheater here are some things you can do using the console. FA may break this formatting, lets see:
Console commands
All console commands are entered in the command text box and start with '/'
(I'll add '~' at some point too).
The next character determines the operation:
? - query
= - assign
> - goto
+ - creation
The query and assign operations need parameters that identify an
object in the game, and then a getter/setter for that object.
$0 refers to the current player
'/' refers to the GameSpace, which is the root of all items and areas
A name in square brackets (such as [val1.village.hospital.kerry])
refers to an item/person by its id. Ids are typically formed from
the initial area names "val1", "village", the location "hospital",
and the object id "kerry" separated by '.'s.
Some detail of the structure of the game can be had by opening
the GameF.jar file in an archive utility (rather than running
the game) and looking at the game.xml file, and those it includes
in the area directory.
For a complete understanding of the various getters and setters
you need to refer to the Javadoc, but this is not available yet.
Get Values
Use the query '?' operator to display values.
Getters can be chained by separating names with '.'s.
How long is your hair?
/?$0.body.head.hair.lengthMm
+ $0.body.head.hair.lengthMm=30
How heavy are your boobs (total) in grams?
/?$0.body.bust.mass
+ $0.body.bust.mass=1515
How heavy are Kerry's boobs?
/?[val1.village.hospital.kerry].body.bust.mass
+ [val1.village.hospital.kerry].body.bust.mass=7579
Set Values
Use the assignment '=' operator to set values.
The last part after the last '.' is the variable to set.
The new value is supplied as a parameter in brackets.
The console performs auto type conversion as best it can to
strings, integers, booleans, and enums.
Note: Upper bounds to most numeric variables is Integer.MAX (2147483647)
Other objects can be referred to as parameters using the '/', '$', or '[]'
syntax. Multiple parameters can be separated by ','.
Internally these are converted to calls to getters and setters so
"body.bust.mass(2000)" becomes getBody().getBust().setMass(2000).
If the setter does not exist then an attempt is made to find a method
without the "set" prefix. So it is possible to call many other methods
this way.
You can get into a lot of strange (potentially game-breaking) situations
using the assignment operator!
Making 'Velour' a human male character (sort-of):
/=$0.persName.family(smith)
+ $0.persName.family(smith) returned true
/=$0.persName.given(john)
+ $0.persName.given(john) returned true
/=$0.name(John)
+ $0.name(John) returned true
/=$0.sex(male)
+ $0.sex(male) returned true
/=$0.species(human)
+ $0.species(human) returned true
/=$0.body.bust.moobs(true)
+ $0.body.bust.moobs(true) returned true
/=$0.body.bust.mass(100)
+ $0.body.bust.mass(100) returned true
But you'll still be dressed as a girl, and have a female build (apart
from the boobs fixed above)!
Transform your eyes into feline ones:
/=$0.body.head.eyes.species(cat)
+ $0.body.head.eyes.species(cat) returned true
Glow-in-the-dark player who never needs torches:
/=$0.lightSource(true)
+ $0.lightSource(true) returned true
Changing the player character to one of the NPCs:
NOTE: Here be dragons; may break quests, may just break.
/=/player([val1.village.hospital.kerry])
+ /player([val1.village.hospital.kerry]) returned true
Or:
/=/player([val1.village.pub.arthur])
And back (best put the NPC where you found them first):
/=/player([velour])
Moving
Use the goto '>' operator to teleport. This bypasses all the checks
normally performed with movement (combat, mobility, exits).
/>val1.mine.entrance
You leave the main room.
-- Mine entrance --
You are standing in the entrance to the old mine workings. Ferns and
small plants grow on the damp rough hewn walls where daylight penetrates.
Within a short distance the vegetation gives way to dark stone. The tunnel
stretches on into the hillside. There is a doorway, SouthEast, to the valley
head. There is a tunnel to the NorthWest.
Creation
Use the add '+' operator to create items from factories
The created item will be on the floor in the player's location.
A bacon butty:
/+food,baconButty
+ created Food:console1
The id of the new item is reported after the class name and the colon,
so you can modify it using assign:
Give it a new id:
/=[console1].id(mybutty)
+ [console1].id(mybutty) returned true
And a silly number of calories:
/=[mybutty].kcals(1000000)
+ [mybutty].kcals(1000000) returned true
A healing potion:
/+potion,healingPotion
+ created HealingPotion:console2
Make it maximum potency:
/=[console2].potency(1000)
A new weapon:
/+weapon,broadSword
Make some male clothes:
/+clothing,underpants
/+clothing,trousers
/+clothing,stringVest
/+clothing,flatCap
/+clothing,boots
/+clothing,shirt
Clothing created this way will always fit you when you first wear it.
Once you do it auto-fits to your current size.
FA+

-Java Version 7 update 25
-The Error:
What I get when I try to load, save, or save as:
AppJnlpUtil.loadGame() start
+ Game NOT loaded as no file was selected.
+ AppJnlpUtil.saveGame() start
+ AppJnlpUtil.saveGame: bytes prepared
+ AppJnlpUtil.saveGame: hand off to Swing
+ Game NOT saved as no file was selected.
+ AppJnlpUtil.saveGame() start
+ AppJnlpUtil.saveGame: bytes prepared
+ AppJnlpUtil.saveGame: hand off to Swing
+ Game NOT saved as no file was selected.
Hope this is useful.