## Phrase Generator

Tool: / OXP: / Database:"

First, it randomly selects sentence patterns. Then, wherever the pattern has a number (in range 1-9), it randomly selects a word from one of the numbered word lists. You can either choose one of the sample sets of words and sentence patterns, or you can enter your own words and sentence patterns. The script tries to minimize repetitions e.g. 'black, black god of', but this is costly and reduced to one other random selection.

Word Lists
Samples:
How many:
Irregular verbs:
Irregular nouns:
Superlatives:
(prefixed with P + pattern #: for better orientation) : Return additional object: : Show stored values: : Recursion guards:
Whatever

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
--- | --- | --- | --- | --- | --- | --- | --- | ---
Patterns |  |  |  |  |  | Rules
Some rules are applied: Patterns: Next word after . ! or ? is capitalized + -> Forces capitalization } -> Forces fields 1-9 { -> Forces fields 10-18 > -> Applies plural rules < -> Applies singular rules | -> Random plural # -> Verb case 1. simple present _ -> Verb case 2. simple past ^ -> Verb case 3. past participle * -> Verb case 4. perfect @B -> player.bounty @C -> player.name @D -> player.ship.displayName @F -> Random Firstname * @I -> player.ship.name @L -> player.legalStatus @N -> Random Surname * @P -> Current system.name * @R -> player.rank @S -> Random system.name * @T -> player.ship.target.displayName @W -> Random full name * @X -> Select random system @Y1 -> Custom Sample settings @Z -> Random Brew name * @a -> Random Roman Numerals @b -> Random Letters A-Z @c -> Random Numbers 0-9 @d -> Random date. clock.days-(1-7) @f -> Last @F, if empty @F @h -> Inhabitant from @S * @i -> Random ShipName * @n -> Last @N, if empty @N @s -> Last @S, if empty @S * @z -> Last @Z, if empty @Z @0-@9 -> Reusable stored values (*) a followed by vowel a,e,i,o,u -> an a followed by superlative -> the Words: $ -> identifies verb (e.g. decide$) & -> identifies irregular noun or verb (e.g. &go$ or &bison) [#] -> field combiner Noun Plural Rules: & -> irregular, uses lookup table otherwise: [^es]s -> unchanged fe -> replace with ves e -> word + s [^o]o,[^ei]x,es[s],[cs]h -> word + es [^aeiou]y -> replace with ies [^erf]f -> replace with ves [ei]x -> replace with ices else -> word + s; Verb Rules: & -> irregular, uses lookup table. Can be combined with plural prefix. case 0 -> base form, e.g. go case 1 -> simple present, e.g. goes case 2 -> simple past, e.g. went case 3 -> past participle, e.g. gone case 4 -> singular: has gone case 4 -> plural: have gone otherwise: case 0 -> base form case 1 -> apply plural noun rules case 2 -> e -> word + d [^aeou]y -> replace with ied [^adeliosy][aeioy][bcdfgjklmnpqrsvz] word + duplicated consonant + ed else -> word + ed case 3 -> e -> word + d [^aeou]y -> replace with ied [^adeliosy][aeioy][bcdfgjklmnpqrsvz] word + duplicated consonant + ed else -> word + ed case 4 -> singular: has + case 3 case 4 -> plural: have + case 3 Field Combiner: e.g. [2] Connects fields in the same row or connects Samples. Recursion depth is limited. Conditions: e.g. (Sg:0=[3]|[7]) Must be enclosed by round brackets. A: (All, Bitmask) Number. true if all Bits are set, e.g. (A3=[3]|[5]) B: (Bitmask) Number 0-24. operators: + -> sets the bit, e.g. (B2+) - -> clears the bit, e.g. (B2-) = -> checks the bit and handles the actions, e.g. (B2=[3]|[5]) D: (Dice roll) 1 Number with actions: 1-99 -> greaterthan random number, e.g. (D50=yes|no) 3 Numbers, comma separated -> generate random number in range param1-param2 in steps of param3 e.g. (D1,78,4) S, P: (node handling with S = @S, P = @P) multiple conditions are separated by , (logical AND) type: c -> productivity d -> description token e -> economy g -> government i -> inhabitant token p -> population r -> radius s -> sun t -> techlevel operators: : -> equal < -> lessthan > -> greaterthan ! -> not equal Y: (Any, Bitmask) Number. true if any Bit is set e.g. (Y3=[3]|[5]) actions: = -> identifies the actions | -> separator matched / not matched

Split Rules |  | - Readonly.
Custom |  | - First entry must be number.
Set seed |  | - Positive integer. 0 to clear.
Add Sample |
Code | - ready for c&p.

    close

#### Comms Helper (Suggestion)

Bit | Hex |  | Meaning | Influenced by | Influenced by | Influences
--- | --- | --- | --- | --- | --- | ---
0 | 0x1 |  | Mood neutral | - | - | -
1 | 0x2 |  | Mood relaxed | - | - | -
2 | 0x4 |  | Mood helpful | - | - | -
3 | 0x8 |  | Mood companion | - | - | -
4 | 0x10 |  | Mood stressed | - | - | -
5 | 0x20 |  | Mood under attack | .shipBeingAttacked | .shipBeingAttackedByCloaked | -
6 | 0x40 |  | Mood annoyed | - | - | -
7 | 0x80 |  | Mood rage | - | - | -
8 | 0x100 |  | Mood panic | .shipEnergyIsLow | .cascadeWeaponDetected | -
9 | 0x200 |  | - | - | - | -
10 | 0x400 |  | - | - | - | -
11 | 0x800 |  | - | - | - | -
12 | 0x1000 |  | Player suspicious | player.bounty | - | Mood relaxed -
13 | 0x2000 |  | Player victim | .isPirate | player.bounty | Mood rage +
14 | 0x4000 |  | Player attacked | - | - | Mood rage +
15 | 0x8000 |  | - | - | - | -
16 | 0x10000 |  | Ship escorted | .escorts.length | - | Mood relaxed +
17 | 0x20000 |  | Ship hasHostileTarget | .hasHostileTarget | - | Mood relaxed -
18 | 0x40000 |  | Ship jump capable | .hasHyperSpaceMotor | - | Mood relaxed +
19 | 0x80000 |  | Ship isPirateVictim | .isPirateVictim | - | -
20 | 0x100000 |  | Ship isPolice | .isPolice | - | -
21 | 0x200000 |  | Ship damaged | .energy | .shipTakingDamage | Mood stressed +
22 | 0x400000 |  | Ship temperature alert | .temperature > 0.5 | - | Mood stressed +
23 | 0x800000 |  | - | - | - | -
24 | 0x1000000 |  | - | - | - | -
- # - $

All relations should be handled by the calling OXP. The Sample itself should only use, but not set values.

    close

#### Overview:

`next page`
The mechanism is based on thinkzone.wlonk.com Poem Generator - expanded with rules and fields 10-18 .-)