Empyrion Galactic Survival Wiki talk:Admin noticeboard

From Empyrion: Galactic Survival Wiki
Jump to: navigation, search

Please add a page called version history.. e.g. https://minecraft.gamepedia.com/Version_history

If you want a page created, then just create it. — Game widow (talk) 11:59, 4 September 2015 (UTC)

Archived discussions[edit source]

Request for new Category (Resource / Resources)[edit source]

While making some other edits I noticed that there isn't a category for refined resources, though there is one for ingots. Promethium Pellets, Magnesium Powder, and Rock Dust don't really fit into that category.

Ores -> Resources -> Components

The Category tree is Items->Ingredients ->Ores || Ingredients -> Ingots || Ingredients -> Components .... this is because many ores and Ingots use in create items other than components. May changed Ingots to Refined Ores or something slimier in near future. The word resource not suitable for refined item, it could do better as a parent category of ores and some other basic stuff, but I am not sure how it fit in the game. Navonil (talk) 12:18, 3 January 2016 (UTC)
Edit: Also use the Please post new topics at the bottom of the page by clicking this link to add a new section. link beneath the main Noticeboard page instead of the talk page for better visibility of your request.Navonil (talk) 12:21, 3 January 2016 (UTC)
Categories are not special pages that only administrators can create. Anyone can create a new category by typing [[Category:Stuff]] on the page, where "Stuff" is the new category name. That creates a "red link" for the category. Then you can edit that red link and place the new category in the hierarchy where it belongs by adding it to another category. For example, if you want a new category for Refined Resources, then you'd add [[Category:Refined Resources]] to whatever pages you want in that category. Then if the new category should be part of "Resources", you'd edit the red link for the Refined Resources category and put [[Category:Resources]] and save that, etc. Also, to move a page from one category to another, you just edit the page and change the category name and resave. That's all there is to it — Game widow (talk) 14:06, 3 January 2016 (UTC)
Yes , Category can be created by anyone but a Posting Guideline is introduced so unnecessary categories are not get created . Still Any one can create categories (obviously) but that is not advisable.That is why editors are advised to request admins(sysop or guardians) to create any new category and discuss if it really necessary before it get implemented..Navonil (talk) 14:25, 3 January 2016 (UTC)

NEW Crafting recipe template[edit source]

Example at template:Sandbox uses example at Sandbox#crafting dpl test

Discussion so far:

user:Geostar1024
Check out the crafting template in the template sandbox when you get the chance; it supports up to 11 ingredients and crafting times for each constructor (using the code you suggested on the infobox item talk page). Computing the raw ore requirements is trickier than I thought, so perhaps we should have an additional crafting template just for the advanced constructor (to be placed on the page under the main crafting template), and once we can compute the ore requirements directly in the main crafting template, we can just remove it from all the pages.

edited 3 days ago user:Navonil
I seen it ..its looks very nice, few problems.. if there are multiple recipe placed together (like in constructor overview page)..will it look good to have image of constructor beside every item?? also your template will place heading for each item which will look odd.. the current template works like below:

crafts top put the header and the start of a table crafts row put rows via 2 template crafts first sub row (if top=y) and crafts sub row

crafts bottom closes the table..(it only have html markup)


posted about 10 hours ago user:Geostar1024
Yeah, I think I'm going to change it so that the constructors are placed in the header, with either an X or a construction time in each constructor's column. Right now I'm stuck on the dpl code to extract information from many crafting templates and compile it into tables (like in the constructor overview page). . . .


posted about 7 hours ago user:Geostar1024
OK, have a look at the Sandbox now; it has a dpl table that is currently populated with Cargo Box and Core (Player); I temporarily added the Sandbox template to those two pages for category testing. I managed to do it with one dpl call, along with a call to a helper template (Template:Sandbox2). We can now replace the entirety of the Constructor Recipes overview with a few dpl calls!

Also, you can see the output of the new crafting template at Template:Sandbox. Basically, I think it's ready to go! (of course, it's going to require more mass editing...which I will help with, of course)


edited about 2 hours ago user:Navonil
Template look very good but the problem remains...

you can't put multiple Item recipe in one table so "Recipes using item" part of the page will look awkward (i added another output in template page, multiple item recipe in same page not looks good) this is not future proof, if any more constructor type item added in the game, it will add another column to the table and if multiple constructor type item added, it can potentially cover the page with column of constructor which are not in use for the item. this is not DPL friendly, if you want to build a page like recipe overview , it will put bunch of table , it won't put all of them in one table... I put a dpl call for some item recipe in sandbox, looks bit awkward due to absence of cell border, but that can be fixed by removing the top=y form the crafts row template...see that...


posted about an hour ago user:Geostar1024
You raise good points; I can address points 1 and 3 immediately:

1. only one item should go in the crafting table, as it serves as the database for that item 3. I did make a DPL call (see the last section in the Sandbox), and you can make multi-item tables using either titlematch=item1|item2|... or categorymatch=category1|category2|...

But I agree that point 2 is a problem. I'll take a look at your sandbox code.

Removing unused constructors from view for the main template was a good call; even better, the code I wrote for Template:Sandbox2 still works and inserts No.png if the time for a particular constructor is omitted (I changed it around a bit as a result of some testing). Currently, the main problem to be solved is to make a third template that can do a dpl call (to categories or multiple pages); problem is, the dpl extension has to be used in mediawiki parser form, and then calling the Sandbox2 template from inside it doesn't work. An alternative would be to simply put the dpl code directly on every page, which might not be terrible, since Template:Sandbox2 handles all the formatting. I was also trying to modify Template:Sandbox2 so that the crafting template (Sandbox) could call it, so we wouldn't have duplicate code. However, I can't make that work either. . .Geostar1024 (talk) 20:33, 2 February 2016 (UTC)

The way I wanted to implement this template is follows:
  1. Template:crafts use for punting the recipe of the item (your current sandbox template)
  2. Template:crafts category to populate a page with all the recipes for the items of particular category (easy to make , call would be {{crafts category |category=<category name>}}) and in the template it use your code from sandbox and the category for the dpl will taken from the call. maybe refined later to add multiple category at-a-time.
  3. Template:craftsby use for making table of recipe which have some particular item in the recipe...I started to make it, it will work like this>
    1. template:craftsby will call using this format> {{craftsby|item=<itemname>}}...in the template there is similer code from your sandbox dpl table test which call another template template:craftsby row which will have similer code like your sandbox2 template...my concept was in crafts by there will be dpl for all the blocks/item recipe , when its call with a item name , it will send the all data to make the table to craftsby row (like you did for sandbox2) along with the <itemname>, in craftsby row there will be a check if that item is on recipe, it will return result, else not.

the problem I am facing is I can't send variable in a template call through dpl unless that variable is generated by the dpl, i.e I cant sent the itemname to craftsby row for checking..have to find some workaround ..then we can implement this template for the wiki...you can chk out the Template:Craftsby code and see if you can find any workaround..--Navonil (talk) 03:01, 3 February 2016 (UTC)


OK, I've solved the problem. The trick was to use DPL's ability to substitute templates. For this, if you have a template named "Template:Sandbox", you need to make another template called "Template:Sandbox.dpl". Then, the dpl code simply consists of "uses=Template:Sandbox" and "include=Template:Sandbox.dpl", and then "Template:Sandbox.dpl" gets called with all the arguments that went to Template:Sandbox. You can see this in the current "Template:Craftsby" code. So, in sum, the three templates we need for this are (I think "Craftsby" is too ambiguous):
  • Template:Crafting <--holds the recipe data and displays crafting table for that item
  • Template:Crafting.dpl <--generates table line for listing multiple recipes
  • Template:Craftlist <--has arguments allowing either multiple individual items (name=<item1>,<item2>,...), or a category (category=<category>) to be selected for display; invokes the DPL template replacement using Template:Crafting.dpl.
Finally, it is the case that Template:Crafting and Template:Crafting.dpl contain basically the same code to generate their tables (just Template:Crafting allows dropping of unused constructor columns), so that will double any maintenance work we need to do. On the other hand, that is infinitely preferable to the present situation, so I'm sure it will be manageable.Geostar1024 (talk) 17:16, 5 February 2016 (UTC)

As far I understand your current plan towards crafting table template-->
  • Template:Crafting will be what is right now on template:sandbox..use for make a crafting table for an item
  • Template:Crafting.dpl and Template:Craftlist will use to generate list of crafting recipe of items which are called individually or by category... templates are right now in template:craftsby and template:sandbox.dpl which I was proposed like template:crafts category... but you name is better..
  • you did not understand what I mean about how I want to use template:craftsby (understandable, my wording is not proper).. what I meant was use template:craftsby to populate a list by the items used in recipe.. so if I call template:craftsby like {{craftsby|item=computer}} it will populate a list of item recipe where computer is used as an ingredient ..lists like this

I would continue to try how to do that, but I think you are better than me in terms of dpl handling..so you would fig. out way before me to how to do it. my thought on how to check for a particulate item in recipe is-->
send the item name to the row generating template (sandbox.dpl in this case) <say the variable name is itemby> and do the following..

{{#ifeq: {{{1}}} | {{{itemby|}}} |  <!--if "itemby" is equal to the 1st item in the recipe then the following code from sandbox.dpl-->

|{{item link|{{{name}}}}}{{#ifeq:{{{amount}}}|1|| ({{{amount}}})}}
|{{item link|{{trim|{{{1}}}}}}} ({{trim|{{{2}}}}}){{#if:{{{3|}}}|<br>{{item link|{{trim|{{{3}}}}}}} ({{trim|{{{4}}}}}){{#if:{{{5|}}}|<br>{{item link|{{trim|{{{5}}}}}}} ({{trim|{{{6}}}}}){{#if:{{{7|}}}|<br>{{item link|{{trim|{{{7}}}}}}} ({{trim|{{{8}}}}}){{#if:{{{9|}}}|<br>{{item link|{{trim|{{{9}}}}}}} ({{trim|{{{10}}}}}){{#if:{{{11|}}}|<br>{{item link|{{trim|{{{11}}}}}}} ({{trim|{{{12}}}}}){{#if:{{{13|}}}|<br>{{item link|{{trim|{{{13}}}}}}} ({{trim|{{{14}}}}}){{#if:{{{15|}}}|<br>{{item link|{{trim|{{{15}}}}}}} ({{trim|{{{16}}}}}){{#if:{{{17|}}}|<br>{{item link|{{trim|{{{17}}}}}}} ({{trim|{{{18}}}}}){{#if:{{{19|}}}|<br>{{item link|{{trim|{{{19}}}}}}} ({{trim|{{{20}}}}}){{#if:{{{21|}}}|<br>{{item link|{{trim|{{{21}}}}}}} ({{trim|{{{22}}}}}) }} }} }} }} }} }} }} }} }} }}
|align=center|{{#if:{{{SU}}}|{{{SU}}} s|{{no}}}}
|align=center|{{#if:{{{SC}}}|{{{SC}}} s|{{no}}}}
|align=center|{{#if:{{{LC}}}|{{{LC}}} s|{{no}}}}
|align=center|{{#if:{{{AC}}}|{{{AC}}} s|{{no}}}}
|align=center|{{#if:{{{FP}}}|{{{FP}}} s|{{no}}}}

|<!--else return nothing-->}} 


{{#ifeq: {{{3}}} | {{{itemby|}}} |  <!--if "itemby" is equal to the 2nd item in the recipe then the following code from sandbox.dpl-->

|{{item link|{{{name}}}}}{{#ifeq:{{{amount}}}|1|| ({{{amount}}})}}
|{{item link|{{trim|{{{1}}}}}}} ({{trim|{{{2}}}}}){{#if:{{{3|}}}|<br>{{item link|{{trim|{{{3}}}}}}} ({{trim|{{{4}}}}}){{#if:{{{5|}}}|<br>{{item link|{{trim|{{{5}}}}}}} ({{trim|{{{6}}}}}){{#if:{{{7|}}}|<br>{{item link|{{trim|{{{7}}}}}}} ({{trim|{{{8}}}}}){{#if:{{{9|}}}|<br>{{item link|{{trim|{{{9}}}}}}} ({{trim|{{{10}}}}}){{#if:{{{11|}}}|<br>{{item link|{{trim|{{{11}}}}}}} ({{trim|{{{12}}}}}){{#if:{{{13|}}}|<br>{{item link|{{trim|{{{13}}}}}}} ({{trim|{{{14}}}}}){{#if:{{{15|}}}|<br>{{item link|{{trim|{{{15}}}}}}} ({{trim|{{{16}}}}}){{#if:{{{17|}}}|<br>{{item link|{{trim|{{{17}}}}}}} ({{trim|{{{18}}}}}){{#if:{{{19|}}}|<br>{{item link|{{trim|{{{19}}}}}}} ({{trim|{{{20}}}}}){{#if:{{{21|}}}|<br>{{item link|{{trim|{{{21}}}}}}} ({{trim|{{{22}}}}}) }} }} }} }} }} }} }} }} }} }}
|align=center|{{#if:{{{SU}}}|{{{SU}}} s|{{no}}}}
|align=center|{{#if:{{{SC}}}|{{{SC}}} s|{{no}}}}
|align=center|{{#if:{{{LC}}}|{{{LC}}} s|{{no}}}}
|align=center|{{#if:{{{AC}}}|{{{AC}}} s|{{no}}}}
|align=center|{{#if:{{{FP}}}|{{{FP}}} s|{{no}}}}

|<!--else return nothing--> }} 


..and so on for every item in the recipe..also pipeline (|) for each cell have to replace with {{!}} so the conditional operator not get confused.

and the problem I am facing is ..can't sent any variable to the row generating template if they are not generated by the dpl (if you look at your code, the variables you sent to your dpl template are used for populate the item list of that dpl, but the variable you sending to the row generating template are all generated by that dpl, not the user sent ones).. I hope I am not confusing..these are all made perfect sense in my head but after writing it, I am not sure if it convey my thought properly --Navonil (talk) 06:50, 5 February 2016 (UTC)


Yes, I see the problem. . . one elegant way to fix this would be for the crafting template to have named ingredients; then it would be trivial to do a DPL call on all items to get which ones contain a certain ingredient. I just successfully tested that we can have template parameter names with spaces in them, so we could arrange things like so (example for "Core (Player)"):

{{Craft
|name=Core (Player)
|amount=1
|SU=16
|SC=14
|LC=10
|AC=7
|Computer=4
|Electronics=5
|Metal Components=4
|Cables=3
}}

The display code would be somewhat simplified and a little more readable with the switch to named parameters, and we'd gain the added benefit of always presenting the ingredients in the same order regardless of how they're entered in the template (alphabetically would make sense). The DPL code to find all items using a certain ingredient would then look something like this (where {{{name}}} is the ingredient to find):

{{Craft List|name={{#dplreplace:{{#dplreplace:{{#dplreplace:{{#dpl:
|category=Devices
|uses=Template:Crafting
|include={Crafting}:{{{name}}}:name
|debug=1
|format=,!,~
}}|!\n\W[a-zA-Z (,)]*~|}}|![0-9]*\n\W|}}|~|,}}}}

It's a bit of a nasty mess of regular expressions because I couldn't figure out how to get dplreplace to accept pipe characters, so I had to do it the hard way. In any case, it goes through all the pages in the category, pulls the named template variables for 'name' and '{{{name}}}', and then arranges the names into a comma-separated string to be passed to the "Craft List" template. All of this code gets wrapped up in its own template, maybe called "Template:Craft Using" (going off of the "Craftsby" name), which is invoked using:

{{Craft Using|name=<item name>|category=<category>}}

I think that we can probably use a variant of this method to compute the ore requirements for each item. It'll require some extra templates, probably, but the switch to named ingredients should help.Geostar1024 (talk) 17:17, 5 February 2016 (UTC)


The craft template is really a elegant solution, as I can't find the actual template I am guessing the template look something like this-->

{{#if: {{{Computer|}}}| {{item link |Computer}} ({{{Computer}}}) }}

for the pipe the template {{!}} and {{{!!}}} did not worked?? they place | and || respectively if pipe itself can't be put Navonil (talk) 17:39, 5 February 2016 (UTC)


Yes, that's exactly the modification we'll need to make to the Craft template (the one currently in "Template:Sandbox"). Yeah, it was weird that {{!}} didn't work in the regular expression, but at least I was able to work around it. I'll go modify "Template:Sandbox" and "Template:Sandbox.dpl" to reflect the named ingredients. If the testing all checks out, then we should be ready to make the real templates. . . Geostar1024 (talk) 17:45, 5 February 2016 (UTC)


go ahead test it out..then we can start to implement it..the current crafts template is copied from Terraria wiki (thanks to User:game widow) as this wiki needed one and I had no idea about wiki editing at-all let alone template building..I wanted to replace it but adding content was my main focus...now thanks to you it can be replaced...you test if it works, in the meantime I complete few unfinished pages..if test checks out we can implement it.. name of the templates-->

  • Template:Craft for making the crafting table
  • Template:Craft List for making list of recipe depending on category or by individual items
  • Template:Craft Ingredient for making list of recipe depending on ingredients

any related template needed for any template to work should named like Template:<main template name> <additional attribute> (e.g. Template:Crafts List Row or Template Crafts List.dpl) --Navonil (talk) 18:04, 5 February 2016 (UTC)


a suggestion: using each item as a variable may complicate the calculation for number of row, my suggestion ditch the multiple row concept and put all the ingredients in one cell with line brake.. that would simplify things

{{#if: {{{Computer|}}}| *{{item link |Computer}} ({{{Computer}}}) }}
{{#if: {{{Metal Plate|}}}| *{{item link |Metal Plate}} ({{{Metal Plate}}}) }}

...and so forth

Navonil (talk) 18:22, 5 February 2016 (UTC)


Actually, all ingredients are in one cell (separated by <br>); I moved away from the multi-row approach because I couldn't get the table to generate properly. Anyway, both "Template:Sandbox" and "Template:Sandbox.dpl" have been updated with most ingredients (I'm probably missing a few, but that's easy to add). I put in some comments so that it's somewhat more readable. If you're satisfied that it all looks good, then I can go ahead and create the permanent templates.Geostar1024 (talk) 19:15, 5 February 2016 (UTC)


yes it's look good, Go ahead... if some item is missing (some actually is) can be added later..Navonil (talk) 20:09, 5 February 2016 (UTC)

Ore calculator[edit source]

At long last, I have figured out how to implement the ore calculator. Right now I'm using "Template:Sandbox" to do the initial template substitution to "Template:Sandbox2", which calls itself recursively until the raw materials are reached. The result is a very long string containing all instances of all the raw materials with appropriate multipliers. At present "Template:Sandbox" isn't being very responsive to edits, so for now "Sandbox" holds the additional processing that the string needs. Basically, the idea is that the original string (output from "Template:Sandbox2") is stored as a variable, and for each raw material, all other instances of the raw material in the string are set to 0, the desired raw material name is removed from the string, and the result is run through the expression parser.

I think we'll only really need 2 templates to implement this, as the first template (currently "Template:Sandbox", maybe named "Template:Craft raw") can handle all the formatting, while the second template (currently "Template:Sandbox2", maybe named "Template:Craft raw recursive") does the recursive calls.

In principle, we could also use a similar method to compute the time required for the Advanced Constructor to build a certain item, but I don't see that as being terribly useful.

In any case, we could simply append the output of "Template:Craft raw" to "Template:Craft", so that we don't need to do a ton of page editing (beside removing the old crafts calls).Geostar1024 (talk) 20:47, 9 February 2016 (UTC)


Go for it...I am bit busy right now (IRL), wiki will get my attention from tomorrow...Navonil (talk) 21:06, 9 February 2016 (UTC)


No problem; it's done. Templates have been created, and the calculator has been integrated into the existing crafting tables. All that remains is to go through all the pages and remove the old crafts template calls.Geostar1024 (talk) 22:08, 9 February 2016 (UTC)


All the old crafts templates have been removed from the item pages, so they can be safely deleted now.Geostar1024 (talk) 01:46, 10 February 2016 (UTC)


problem with ore calculator...

  1. ore can't be fraction
  2. ore has to be in multiple of 5 as min 5 ore needed to build Ingot(output=10)..

so if the result of calculator is<=5 then ore=5; 5<result<=10, ore=10; 10<result<=15, ore=15 etc, almost always there is some components/refined resources left as byproduct if something crafted in adv. con. you have to add some kind of expression like

a=|amount/5|
if (amount%5)>0
amount=a*5+5
if (amount%5)=0
amount=amount

Navonil (talk) 03:40, 10 February 2016 (UTC)


It's done. I just added "5*ceil(" to the beginning of the expression and "/5)" to the end for all raw materials except Promethium Ore and Corn (which just got enclosed by "ceil()"). It's not the nicest solution, as the 5 is hard-coded (properly it should pull from the craft data for each refined material). On the other hand it works, so I'm happy with it. Geostar1024 (talk) 14:50, 10 February 2016 (UTC)


If it works..it's fine for me....
I don't understand those replacement patterns..I guess you are well versed in PHP(?).. but I have very little Idea how this templates are working..and won't be able to fix/add most of the thing in them.. so I hope it is future proof and you will be around in this wiki to fix them if needed...
I hope you see the devs post that game going to Alpha soon which means more items and stuff coming soon..we need to make this wiki to catch up with current update so when new update hits we need to add only the new stuff.... I will update the rotation info in turrets and add most of the Mob page today...I have plan to replace all the part of front-page with different template(header and about already replaced)..waiting for permission to make icon with game assets, them I will rebuild the whole front page... do you have any plan for the wiki??
AND A BIG THANK YOU FOR MAKING THE CRAFTING TEMPLATE Navonil (talk) 16:01, 10 February 2016 (UTC)

PS not going to delete those old crafts template but will make them unusable and keep them for future redundancy Navonil (talk) 16:03, 10 February 2016 (UTC)


Ok, probably a good idea to keep the old templates around. And you're welcome about the crafting template; I'm just pleased that it works, considering that it's the biggest template I've ever made. . .

I'm going to add a bunch of documentation on exactly how the ore calculator works since you're right that it's extremely hard to interpret in its present state (huge mess of regular expressions and recursive template calls). I'm thinking of making a helper template to clean up some of the code redundancy, which should make it easier to maintain. How to add new items will also be part of the documentation.

At present, I don't have much in the way of large-scale plans besides filling in missing information here and there. I have a couple of small ideas about the Infobox item template, but I'll put those thoughts on its talk page rather than here.Geostar1024 (talk) 17:47, 10 February 2016 (UTC)

Main page / Versions[edit source]

The main page is protected. I want update the versions, but i cant. what do you say, if u create a new side for the versions and link to the main page. the versions page can everybody edit. Cymac89 (talk) 07:47, 6 June 2019 (UTC)