User:Esredar/Sandbox
Esredar's sandbox
Ruins[edit]
Number of pages with Type2::Ruins: 150
Number of pages with Category:Project Ruins: 126
Info added by Arcangelus[edit]
Pages with Type2::Ruins but not in Category:Project Ruins: 23 (As of February 9, 2026)
Advanced component box, Ancient barrel, Ancient bed, Chemfuel canister, Component box, Crashed shuttle, Hermetic crate, Life support unit, Malfunctioning transport pod, Mechanoid ship chunk, Medicine pallet, Rusted bed, Rusted double bed, Rusted open container, Rusted safe, Sealed container, Sealed crate, Security crate, Ship chunk, Ship part (psychic droner), Steel scrap box, Steel scrap pallet, Survival meal pallet
Deconstruct yield[edit]
Number of pages with Type2::Ruins and Deconstruct Yield Fraction: 83
Number of pages with Deconstruct Yield Fraction: 362
Number of pages with Type2::Ruins and Resource 1 (set if constructable): 0
Number of pages with Resource 1 (set if constructable): 555
Number of pages with Type2::Ruins and Resources (set if constructable): 0
Number of pages with Resources (set if constructable): 555
Deconstruct Yield Fractionis set on a number of pages. This happens when Infobox variabledeconstructableis set to true.- Since the yield is calculated from the construction resources, yield is zero (at least on the pages, not sure in-game).
- examples
Destroy yield[edit]
- There is no property set for destroy yield.
- There are several variables expressing this in Infobox main:
destroyyield,leavesresourceswhendestroyed,bonusdestroyleavings(the last 2 are being phased out).destroyyieldis just a string that's being displayedleavesresourceswhendestroyedapplies to construction resources, multiplies by 25% instead of 50% for deconstruct.bonusdestroyleavingsis a display string likedestroyyield. I guessdestroyyieldis its new name?
- examples
destroyyield: found on 97 pages, some of them ruins, including
Ancient warwalker claw
. Few Odyssey pages:
Mechanoid ship chunk
,
Crashed shuttleleavesresourceswhendestroyed: only found on 2 pages, none of them ruinsbonusdestroyleavings: only found on 10 pages, some displaying the yield, some not. Not obvious why.- displayed:
Ancient dropship
,
Ancient ruined APC 
- not displayed:
Ancient dropship engine
,
Ancient truck
,
Ancient exostrider cannon
,
Ancient exostrider head
,
Ancient exostrider leg
,
Ancient car
,
Ancient exostrider midsection 
- not a ruin, displayed:
Cannibal platter
is weird, gives less if deconstructed than if destroyed, is that correct? Also has leavesresourceswhendestroyed=false.
- displayed:
Ancient Shrine loot[edit]
Table[edit]
Each type of item is given a chance to spawn, then if there are several options for it, one is randomly picked. In the case of the artifacts, up to two items are picked, which be the same or different. Because artifacts don't stack, there could be up to 7 different items if the Royalty DLC is present, 6 if not. Conversely there could be no item at all.
| Item | Randomly picked among | Amount | Chance |
|---|---|---|---|
| Artifact | 1 - 2 | 70% | |
| Misc. item | 1 | 50% | |
| any | 1 | 50% | |
| 5 - 20 | 35% | ||
| 1 - 4 | 35% | ||
| 2 - 8 | 35% |
Problem with the Misc. items query[edit]
I want the list to be sorted by DLC, then by name, as usual. But my initial attempt at a query isn't working.
The aim is to get the query to sort the strings so I need to supply it with the hard-coded list of items to merge it with the query on single use weapons (and skilltrainers).
Alternatives: I haven't found any functions that allow alphabetical sorting, you can only compare strings for equality, and anyway there is no programmatical support for arrays or lists. So as far as I'm aware, queries are the way to go.
Attempt 1: Selecting on Name[edit]
This is what I tried initially. It stops working when the list is over 12 names long. You get absolutely everything instead.
{{#ask:[[ThingSetMakerTags::SingleUseWeapon||SkillNeurotrainer]] OR [[Name::Marine armor || Marine helmet || Charge rifle || Charge lance || Assault rifle || Techprof subpersona core || Archotech eye || Archotech arm || Archotech leg || Power claw || Bionic eye || Bionic arm || Bionic leg || Bionic spine || Bionic heart || Joywire || Painstopper || Antigrain warhead || Healer mech serum || Resurrector mech serum || Flatscreen television || Megascreen television || Grand sculpture]]
| format = plainlist
| template = Loot Item
| link = none
| sep = ,
| sort = From DLC, Name
| default = None.
}}
Result: you get a list of all pages in the wiki. Not a great result. Plus a warning:
The following query condition could not be considered due to this wiki's restrictions on query size or depth: [[Marine armor]] OR [[Marine helmet]] OR ...
So it converts
[[Name::Marine armor || Marine helmet || ...]]
to
[[Marine armor]] OR [[Marine helmet]] OR ...
and complains it has too many conditions.
Attempt 2: Selecting pages directly[edit]
{{#ask:[[ThingSetMakerTags::SingleUseWeapon||SkillNeurotrainer]] OR [[Marine armor || Marine helmet || Charge rifle || Charge lance || Assault rifle || Techprof subpersona core || Archotech eye || Archotech arm || Archotech leg || Power claw || Bionic eye || Bionic arm || Bionic leg || Bionic spine || Bionic heart || Joywire || Painstopper || Antigrain warhead || Healer mech serum || Resurrector mech serum || Flatscreen television || Megascreen television || Grand sculpture]]
| format = plainlist
| template = Loot Item
| link = none
| sep = ,
| sort = From DLC, Name
| default = None.
}}
Result: None.
The following query condition could not be considered due to this wiki's restrictions on query size or depth: [[ThingSetMakerTags::SingleUseWeapon||SkillNeurotrainer]] OR [[:Marine armor]] OR [[:Marine helmet]] OR ...
So it's the same problem but you get None with this syntax, whereas you get all pages when restricting on Name. Also in this case it includes the first query in its message.
This time we're limited to 13 names. It's fine up to Bionic leg but stops working if you add Bionic spine to the list. Bizarre.
I tried removing the spaces in case it was related to the length of the query string but it didn't help.
Attempt 3: Splitting into several queries[edit]
The first option message doesn't include the first condition, so maybe the second condition is considered as a subquery whereas the second option flattens it to a single query. Could I use two subqueries of 12 items or less? I have 23 items total.
{{#ask:[[ThingSetMakerTags::SingleUseWeapon||SkillNeurotrainer]] OR [[Name::Marine armor || Marine helmet || Charge rifle || Charge lance || Assault rifle || Techprof subpersona core || Archotech eye || Archotech arm || Archotech leg || Power claw || Bionic eye || Bionic arm]] OR [[Name::Bionic leg || Bionic spine || Bionic heart || Joywire || Painstopper || Antigrain warhead || Healer mech serum || Resurrector mech serum || Flatscreen television || Megascreen television || Grand sculpture]]
| format = plainlist
| template = Loot Item
| link = none
| sep = ,
| sort = From DLC, Name
| default = None.
}}
Result: None.
Nope, it doesn't work.
The following query condition could not be considered due to this wiki's restrictions on query size or depth: [[ThingSetMakerTags::SingleUseWeapon||SkillNeurotrainer]] OR [[Name::Marine armor || Marine helmet || Charge rifle || Charge lance || Assault rifle || Techprof subpersona core || Archotech eye || Archotech arm || Archotech leg || Power claw || Bionic eye || Bionic arm]] OR [[Name::Bionic leg || Bionic spine || Bionic heart || Joywire || Painstopper || Antigrain warhead || Healer mech serum || Resurrector mech serum || Flatscreen television || Megascreen television || Grand sculpture]].
Well this time it doesn't transform it in the message.
Conclusion[edit]
I'm running out of ideas. Options left:
- ask to change the wiki limit - although it's probably there for performance reasons, not sure it's a good idea.
- give up on querying and hard-code the whole list. It will need to be updated if new single use weapons are added in future DLCs. But it's also the case if new items are added to the list.
- have two parts in the table cell, separated by a hard break. One for the hard-coded list, manually sorted; and one for the single use weapons, obtained by a query; skill trainers can be added to the hard-coded list since there's only one item and it doesn't really fit with the single use weapons. Problem with this approach: It might confuse the reader since there's no good reason to separate the items into two lists.
Is it an isolated case? No, MapGen_ScarlandsHermeticCrate has a similar format. But nothing else does.
Loot Item template test[edit]
Charge lance,
Doomsday rocket launcher,
Grand sculpture,
Joywire,
Large sculpture,
Painstopper,
Power claw,
Psychic foil helmet,
Small sculpture,
Triple rocket launcher,
Biomutation pulser
,
Deadlife pack
,
Ghoul resurrection serum
,
Juggernaut serum
,
Metalblood serum
,
Mind-numb serum
,
Shard animal pulser
,
Shard insanity lance
,
Shard shock lance
,
Unique hellcat rifle ![]()
,
Void sculpture
,
Voidsight serum
,
Terror sculpture
,
Hunter pack
,
Pilot assistant
,
Pilot subpersona core
,
Sentience catalyst
,
Shuttle engine
,
Unique LMG
,
Unique assault rifle
,
Unique beam repeater
,
Unique bolt-action rifle
,
Unique chain shotgun
,
Unique charge lance
,
Unique charge rifle
,
Unique greatbow
,
Unique heavy SMG
,
Unique minigun
,
Unique revolver
,
Unique sniper rifle
,
Aesthetic nose
,
Aesthetic shaper
,
Circadian assistant
,
Circadian half-cycler
,
Coagulator
,
Drill arm
,
Elbow blade
,
Eltex shirt
,
Field hand
,
Gastro-analyzer
,
Gunlink
,
Hand talon
,
Healing enhancer
,
Immunoenhancer
,
Knee spike
,
Learning assistant
,
Love enhancer
,
Mindscrew
,
Neurocalculator
,
Nuclear stomach
,
Psytrainer
,
Reprocessor stomach
,
Sterilizing stomach
,
Venom fangs
,
Venom talon
Fishing rare catches WIP[edit]
Fishing rare catches offer a large variety of items, the majority of which are available in all biomes, with a small number only available in some biomes.
Biome-independent items[edit]
The most common items are maps, followed by books and drugs.
[edit]
These items are only present in specific biome subsets:
- Hot: arid shrubland, desert, extreme desert, grassland, lava field
- Cold: boreal forest, cold bog, tundra, ice sheet, sea ice, glacial plain
- Temperate: temperate forest, temperate swamp
- Tropical: tropical rainforest, tropical swamp
- Glowforest has its own subset
- Fishing is not possible in the scarlands.
For most biomes, these items are biome-appropriate apparel, animal corpses, and fertilized eggs. In the glowforest it's psilocap and raw fungus.
Fishing rare catch table[edit]
A rare catch gives one of the following items:
Plants with completelyIgnoreFertility[edit]
Expected: same values for all types of soil
Reeds[edit]
| Ground Type | Gravel | Soil | Rich Soil | Hydroponics |
|---|---|---|---|---|
| Fertility (%) | 70 | 100 | 140 | 280 |
| Real Grow Time (days)[1] | 4.62 | 4.62 | 4.62 | N/A |
| Base Yield/day[2] | N/A |
- ↑ Actual days to grow, taking into account rest time.
- ↑ Per plant, assuming Crop Yield Multiplier of 1.0.
Note that Difficulty settings change the Crop Yield Multiplier.
Cypress tree[edit]
| Ground Type | Gravel | Soil | Rich Soil | Hydroponics |
|---|---|---|---|---|
| Fertility (%) | 70 | 100 | 140 | 280 |
| Real Grow Time (days)[1] | 64.61 | 64.61 | 64.61 | N/A |
| Base Yield/day[2] | 0.93 | 0.93 | 0.93 | N/A |
- ↑ Actual days to grow, taking into account rest time.
- ↑ Per plant, assuming Crop Yield Multiplier of 1.0.
Note that Difficulty settings change the Crop Yield Multiplier.
Done by setting min fertility and fertility sensitivity to 0.
Landmarks[edit]
Multiple tables[edit]
Implemented in Landmarks
Single table[edit]
wikitable:
| Name | Description | Terrain | Biomes | Combines with | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| F | SH | LH | M | TF | TS | TrR | TrS | AS | D | ED | BF | CB | T | IC | SI | GP | Gl | Gr | L | S | |||
| Basin | A natural depression in a mountain range, in which groundwater feeds a small lake. | wetland, ancient quarry | |||||||||||||||||||||
| Cavern | Example | Example | |||||||||||||||||||||
| Chasm | Example | Example | |||||||||||||||||||||
STDT double row header:
| Name | Description | Terrain | Biomes | Combines with | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| F | SH | LH | M | TF | TS | TrR | TrS | AS | D | ED | BF | CB | T | IC | SI | GP | Gl | Gr | L | S | |||
| Basin | A natural depression in a mountain range, in which groundwater feeds a small lake. | wetland, ancient quarry | |||||||||||||||||||||
| Cavern | Example | Example | |||||||||||||||||||||
| Chasm | Example | Example | |||||||||||||||||||||
STDT single row header:
| Name | Description | F | SH | LH | M | TF | TS | TrR | TrS | AS | D | ED | BF | CB | T | IC | SI | GP | Gl | Gr | L | S | Combines with |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Basin | A natural depression in a mountain range, in which groundwater feeds a small lake. | wetland, ancient quarry | |||||||||||||||||||||
| Cavern | Example | Example | |||||||||||||||||||||
| Chasm | Example | Example |
Biomes[edit]
Dealing with coastal animals[edit]
Adding a Coastal Animal flag to animals[edit]
Temperate Forest Fauna (current):
Alpaca, Bison, Boomalope, Boomrat, Cougar, Deer, Donkey, Gazelle, Grizzly bear, Guinea pig, Hare, Horse, Ibex, Lynx, Megasloth, Muffalo, Raccoon, Rat, Red fox, Rhinoceros, Squirrel, Timber wolf, Tortoise, Turkey, Warg, Wild boar, Yak, Badger
, Bluebird
, Crow
, Mink
, Otter
, Porcupine
, Quail
, Sea lion
, Seal
, Sparrow
, Stone crab
, Swan
, Wolverine
Testing for non-coastal:
Alpaca, Bison, Boomalope, Boomrat, Cougar, Deer, Donkey, Gazelle, Grizzly bear, Guinea pig, Hare, Horse, Ibex, Lynx, Megasloth, Muffalo, Raccoon, Rat, Red fox, Rhinoceros, Squirrel, Timber wolf, Tortoise, Turkey, Warg, Wild boar, Yak, Badger
, Bluebird
, Crow
, Mink
, Porcupine
, Quail
, Sparrow
, Swan
, Wolverine
Testing for coastal (not implemented): Otter
, Sea lion
, Seal
, Stone crab
Comments[edit]
- Adding a Is_coastal boolean is fairly easy but since the flag would only be set on specific animals, you can only test if it is true. Undefined is not evaluated as false.
- There's also the issue of Infobox growing into a monster as we add more data
- So
- the current implementation would get all animals (coastal or not) without discriminating. It works I guess but there's no way to differentiate the coastal animals. You'd have to go to the page and see the description. Possible in the short term but a bit disappointing. Not as good as the current description.
- Testing if Is_Coastal is false always returns None. Useless.
- The only way for this to work would be to generate the value automatically on all pages that don't have the flag set. Not worth it.
- Testing if it's true would likely work. We'd get a list of the coastal animals for that biome.
- Could maybe get the full list and the coastal list and painstakingly build the displayed list. Uggh, it 's not like we have good string functions.
Maybe it's the wrong approach.
What we have in the XML[edit]
Going back to the XML files, we have:
- All coastal animals come with Odyssey. There are 8 total, 7 defined in Races_Animal_Coastal.xml, 1 (penguin) defined in Races_Animal_Birds.xml.
- Biomes have them listed under tag <coastalWildAnimals>, unlike the other animals who are in <wildAnimals>.
- 12 Core biomes and 4 Odyssey biomes have them.
- Side note: there's also tag <pollutionWildAnimals>, which was added with Biotech. Presumably that list defines the animals spawning when the tile is polluted. Not sure what happens if the map is not very polluted, do you get a mix? That's beside the point, but at some point it could be useful to display that in Biomes too.
Analysis[edit]
So it's the biome that lists which animals live where, with a different list for coastal and a different list for pollution.
In contrast, in the wiki, each animal has boolean flags set for each biome it lives in. It makes sense because it's a many to many relationship, you can't have lists in properties, and there are less biomes than animals.
Coastal animals are always coastal, at least for now. There are no animals that are sometimes land-based and sometimes coastal. So having a Is_Coastal flag along with the usual Lives_In_Temperate_Forest (and friends) makes more sense than doubling the biome list with stuff like Lives_In_Temperate_Forest_Coast, which would mirror what has been done for <wildAnimals>. My concern is property ballooning, although I'm unclear on the limitations of the wiki.
Do we need to know that an animal is coastal?
- on the animal page, it could be displayed automatically. But that could also be done by mentioning it in the text.
- having a property for it means you would get a page listing all the coastal animals. Always nice.
- on Biomes, it would be nice to differentiate between the land animals that always have a chance to be there, and the coastal animals that are only there if the tile is coastal.
I think in the short term, just setting the biomes flags would allow us to use #ask for the Odyssey biomes and the Habitats template on coastal animals.
For lists mentioning that the animals are coastal in Biomes, it would actually be easier to have specific Lives_In_Temperate_Forest_Coast. I don't like the redundancy of info but maybe that comes with the limits of working with a wiki. Need input from experienced people.
Unsolicited Feedback[edit]
Arcangelus: Done. The default value of Property:Coastal Animal was not properly set up. Now, it works as intended. I also changed the queries above to reflect the change.