Commands
Everything Poncho can be told to do in G-Script, with its inputs, what it gives back, what it costs and how it unlocks. Each line of code costs one CPU tick; some commands cost more, and every command warms Poncho up a little.
Made from the game's data on every update, so it matches the live game.
Combat
| Command | What it does | Gives back | Cost | Unlocked by |
|---|---|---|---|---|
attack(direction) | Zap whatever is next to me in that direction. Returns True if I hit something. | bool | 1 line, 3 heat, takes time | always |
Control
| Command | What it does | Gives back | Cost | Unlocked by |
|---|---|---|---|---|
forget(key) | Forget what I remembered under that name. | none | 1 line, 0.2 heat | Syntax Manual: Memory |
dock() | Plug into a charging dock next to me: cools me down a lot and cheers me up. | bool | 1 line, 0 heat, takes time | always |
recall(key) | Get back what I remembered under that name, or None. | any | 1 line, 0.2 heat | Syntax Manual: Memory |
remember(key, value) | Keep a value under a name, even after the program stops (and in saves). Up to 32 things. | none | 1 line, 0.2 heat | Syntax Manual: Memory |
wait(seconds) | Do nothing for a while. Lets me cool down. | none | 1 line, 0 heat, takes time | always |
Farming
| Command | What it does | Gives back | Cost | Unlocked by |
|---|---|---|---|---|
take_sample() | Take a soil core from the tile under me for the Soil Lab (the shop's Soil Lab section sends them). | bool | 1 line, 1 heat, takes time | Soil Science perk |
fertilize() | Use one fertilizer on the crop under me so it ripens faster. | bool | 1 line, 1 heat, takes time | Syntax Manual: Horticulture |
water() | Water the tile under me. | bool | 1 line, 1 heat, takes time | always |
plant(crop) | Plant a seed on tilled soil. Uses one seed. | bool | 1 line, 1 heat, takes time | having Potato Seed |
till() | Break up the soil under me so seeds can go in. | bool | 1 line, 1.5 heat, takes time | always |
harvest() | Harvest a ripe crop under me. | bool | 1 line, 1.5 heat, takes time | always |
spread(what) | Spread one bag of Compost, Urea, Lime, Sulfur, Phosphate or Potash on the tilled tile under me. | bool | 1 line, 1 heat, takes time | always |
clear(direction) | Clear brush, chop a tree or break a boulder next to me (on our land). Trees and boulders take a few hits. True when it's gone. | bool | 1 line, 1.5 heat, takes time | always |
Interaction
| Command | What it does | Gives back | Cost | Unlocked by |
|---|---|---|---|---|
withdraw(what, count, direction) | Take up to count of something out of the storage next to me. Returns how many I got. | number | 1 line, 0.5 heat, takes time | always |
deposit_all(direction) | Put everything the storage next to me accepts into it (never potatoes). Returns how many went in. | number | 1 line, 0.8 heat, takes time | always |
deposit(what, direction) | Put every one of something from the bag into the storage next to me (Chest, Silo, Seed Vault, Compost Bin). Returns how many went in. | number | 1 line, 0.5 heat, takes time | always |
build(direction) | Work on the construction site next to me. True when it's finished. | bool | 1 line, 1.5 heat, takes time | always |
open_crate(direction) | Pry open a crate next to me. Loot goes in the bag. | bool | 1 line, 1.5 heat, takes time | always |
Movement
| Command | What it does | Gives back | Cost | Unlocked by |
|---|---|---|---|---|
move_by(dx, dy) | Roll dx tiles across and dy tiles down (negative = left/up). Click a sensor tile to fill it in. Returns False if blocked on the way. | bool | 1 line, 1 heat, takes time | always |
move(direction) | Roll one tile North, East, South or West. Returns False if blocked. | bool | 1 line, 1 heat, takes time | always |
Sensor
| Command | What it does | Gives back | Cost | Unlocked by |
|---|---|---|---|---|
get_crop() | What's planted under me (Potato, Corn...), or None. | entity | 1 line, 0.1 heat | always |
scan() | List of [dx, dy] offsets of every hostile in sensor range. | list | 1 line, 0.8 heat | Syntax Manual: Sensors |
scan_structures() | Everything built in sensor range: a list of [dx, dy, Thing], using the nearest tile of each. | list | 1 line, 0.6 heat | always |
scan_danger() | [dx, dy] of every tile the Loop Warden has marked, in sensor range. | list | 1 line, 0.2 heat | always |
scan_crates() | List of [dx, dy] offsets of crates in sensor range. | list | 1 line, 0.8 heat | Syntax Manual: Sensors |
run_script(name) | Runs one of your saved scripts, then carries on. Variables and functions it makes are shared with the program that called it. | none | 1 line, 0.2 heat | Subroutines perk |
read_sign(direction) | The text on the sign or banner next to me ('' if it's blank or there's none). | string | 1 line, 0.1 heat | always |
nearest_enemy() | Offset [dx, dy] to the closest hostile in sensor range, or None. | list | 1 line, 0.5 heat | Syntax Manual: Sensors |
look(direction) | What's next to me: Tree, Boulder, Brush, a crop (Potato...), something built (Fence, Bench...), or None. | entity | 1 line, 0.1 heat | always |
get_soil() | Rough soil health under me, 0 to 100: the scarcest nutrient and how far pH is from 6-7. Exact numbers need the Soil Lab. | number | 1 line, 0.2 heat | Syntax Manual: Agronomy |
get_x() | My column on the grid. | int | 1 line, 0 heat | Syntax Manual: Navigation |
get_y() | My row on the grid. | int | 1 line, 0 heat | Syntax Manual: Navigation |
get_ripeness() | How grown the crop under me is, 0 to 100 (100 = ripe). | number | 1 line, 0.2 heat | Syntax Manual: Agronomy |
get_neighbors() | What's planted North, East, South and West of me, as a list of 4 (None for empty). | list | 1 line, 0.4 heat | Syntax Manual: Agronomy |
get_lab() | Last lab results for the tile under me: [pH, N, P, K], or None if it was never tested. | list | 1 line, 0.1 heat | Soil Science perk |
danger() | True if the tile under me is about to be hit (or being hit) by the Loop Warden. | bool | 1 line, 0.2 heat | always |
boss_open() | True while the Loop Warden vents and its shield is down: attack() works then. | bool | 1 line, 0.2 heat | always |
enemy_in_range() | True if a hostile is inside my sensor grid. | bool | 1 line, 0.3 heat | Syntax Manual: Sensors |
is_watered() | True if the tile under me is watered. | bool | 1 line, 0.2 heat | Syntax Manual: Horticulture |
is_tilled() | True if the soil under me is tilled. | bool | 1 line, 0.2 heat | always |
is_ripe() | True if the crop under me is ready to harvest. | bool | 1 line, 0.2 heat | always |
stored(what, direction) | How many of something are in the storage next to me. | number | 1 line, 0.1 heat | always |
probe() | Live soil reading for the tile under me: [pH, N, P, K]. | list | 1 line, 0.6 heat | Field Probe perk |