Post your modding questions here

User avatar
jojoa1997
Member
 
Posts: 2890
Joined: Thu Dec 13, 2012 05:11

by jojoa1997 » Fri Oct 04, 2013 23:15

VanessaE wrote:Most elementary way I can think of: ...
lol you lost me even more
Last edited by jojoa1997 on Fri Oct 04, 2013 23:16, edited 1 time in total.
Coding;
1X coding
3X debugging
12X tweaking to be just right
 

User avatar
Chinchow
Member
 
Posts: 683
Joined: Tue Sep 18, 2012 21:37

by Chinchow » Fri Oct 04, 2013 23:33

Is it possible to restrict an object so it can only be crafted by a certain surface for example

{}{}{} {}

thats the area but as you can see you could craft with the normal craft is there a way to stop that?
Sometimes, it's harder to think up a mod than it is to create it.
Mods: Orichalcum Stonebricks Extra Chests
 

User avatar
Esteban
Member
 
Posts: 872
Joined: Sun Sep 08, 2013 13:26
GitHub: Esteban-
IRC: Esteban
In-game: Esteban

by Esteban » Sat Oct 05, 2013 02:06

tinoesroho wrote:Before you contributed 3d models to Simple Mobs, it made use of 2D Mobs. The repo's here. Take a look at the earlier revisions with the 2D mobs; I don't think there are too many limitations.

EDIT:
You might also want to look at how the torch animation is done. If you can unite the two techniques, the world'll be a better place.


Thanks for the repo, but is there some guide or advanced information about mobs? I would like to understand rather than copying code.
 

User avatar
hoodedice
Member
 
Posts: 1372
Joined: Sat Jul 06, 2013 06:33

by hoodedice » Sat Oct 05, 2013 10:36

Any way of getting the HUD covered by a huge semi-transparent image? If yes, how do I go about achieving it?
7:42 PM - Bauglio: I think if you go to staples you could steal firmware from a fax machine that would run better than win10 does on any platform
7:42 PM - Bauglio: so fudge the stable build
7:43 PM - Bauglio: get the staple build
 

User avatar
Casimir
Member
 
Posts: 1101
Joined: Fri Aug 03, 2012 16:59

by Casimir » Sat Oct 05, 2013 13:31

Here an example Kochcurve.
Image
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
tree={
    axiom="A-T-TA-T-TA",
    rules_a="A+TA-T-TA+TA",
    trunk="default:tree",
    leaves="default:leaves",
    angle=60,
    iterations=2,
    random_level=0,
    trunk_type="single",
    thin_branches=true,
    fruit_chance=10,
    fruit="default:apple"
    }

minetest.register_craftitem("tree:spawner", {
    description = "Treespawner",
    inventory_image = "default_stick.png",
    on_use = function(itemstack, user, pointed_thing)
        local pos = pointed_thing.under
        minetest.spawn_tree(pos,tree)
        print("[tree] New tree at "..pos.x..", "..pos.y..", "..pos.z.."")
    end
})

Normally you would write the axiom as "F--F--F" and the rule as "F+F--F+F" but we have to use ABCD for the rules and write "-T" instead of "-". Because the -+*/^& don't include the step forward here. For the step forward you have the options GFfTR as written in the API.
 

jin_xi
Member
 
Posts: 165
Joined: Mon Jul 02, 2012 18:19

by jin_xi » Sat Oct 05, 2013 13:49

i made "proper" lsystems in lua

Image

its penrose tiling , sierpinski triangle and hilbert curve, code below

[spoiler]
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
hilbert = {
   angle = 90,
   iterations = 6,
   axiom = "X",
   constants = "XY",
   rules = {
      X="-YFF+XFFX+FFY-",
      Y="+XFF-YFFY-FFX+"
   },
   materials = { "wool:cyan" }
}

sierp = {
   angle = 120,
   iterations = 6,
   axiom = "f-g-g",
   rules = {
      f = "f-g+f+g-f",
      g = "gg"
   },
   materials = {"wool:red"}
}

penrose = {
   angle = 36,
   iterations = 5,
   constants="6789",
   axiom="[7]++[7]++[7]++[7]++[7]",
   rules={
      ["6"]="81++91----71[-81----61]++",
      ["7"]="+81--91[---61--71]+",
      ["8"]="-61++71[+++81++91]-",
      ["9"]="--81++++61[+91++++71]--71",
      ["1"]="",
   },
   scale=12,
   materials = {"wool:yellow"}
}

lsystem = {}
local matrix = {}

local x = { x=1, y=0, z=0 }
local y = { x=0, y=1, z=0 }
local z = { x=0, y=0, z=1 }

local round = function(n)
   return math.floor(n+0.5)
end

function lsystem.lproc(def)
   local axiom = def.axiom--""
   local tmp = ""

   for i=1, def.iterations do
      if i==1 then
     axiom = def.axiom
      else
     axiom = tmp
      end
      tmp = ""
      for c in axiom:gmatch(".") do
     local rule = def.rules[c] or c
     tmp = tmp..rule
      end
   end
   return tmp
end

lsystem.spawn = function (pos, def)   
   local min = { x = pos.x, y = pos.y, z = pos.z }
   local max = { x = pos.x, y = pos.y, z = pos.z }
   
   local nodes = {}
   local materials = {}
   for _, mat in pairs(def.materials) do
      table.insert( materials, minetest.get_content_id(mat) )
   end
   
   local tmp = matrix.new()
   local rot = matrix.orient(tmp, math.pi/2, z )
   local pos = vector.new(pos)
   local mat = 1
   local stk = {}
   
   local axiom = lsystem.lproc(def)
   print(axiom)
   local axpos = 1
   for c in axiom:gmatch"." do
      if c == "[" then
     table.insert(stk, { rot=rot, pos=pos } )
      elseif c == "]" then
     local s = table.remove(stk)
     rot = s.rot
     pos = s.pos
      elseif c == "+" then
     tmp = matrix.id()
     tmp = matrix.orient(tmp, def.angle*math.pi/180, y)
     rot = matrix.mul(tmp, rot)
      elseif c == "-" then
     tmp = matrix.id()
     tmp = matrix.orient(tmp, -def.angle*math.pi/180, y)
     rot = matrix.mul(tmp, rot)
      elseif c == "&" then
     tmp = matrix.id()
     tmp = matrix.orient(tmp, def.angle*math.pi/180, z)
     rot = matrix.mul(tmp, rot)
      elseif c == "^" then
     tmp = matrix.id()
     tmp = matrix.orient(tmp, -def.angle*math.pi/180, z)
     rot = matrix.mul(tmp, rot)
      elseif c == "/" then
     tmp = matrix.id()
     tmp = matrix.orient(tmp, def.angle*math.pi/180, x)
     rot = matrix.mul(tmp, rot)
      elseif c == "*" then
     tmp = matrix.id()
     tmp = matrix.orient(tmp, -def.angle*math.pi/180, x)
     rot = matrix.mul(tmp, rot)
      elseif c == "C" then
     mat = tonumber(axiom:sub(axpos+1, axpos+1))
      elseif not string.match(def.constants or "", c) then
     for i=1, def.scale or 1 do
     if pos.x < min.x then min.x = pos.x end
     if pos.y < min.y then min.y = pos.y end
     if pos.z < min.z then min.z = pos.z end
     if pos.x > max.x then max.x = pos.x end
     if pos.y > max.y then max.y = pos.y end
     if pos.z > max.z then max.z = pos.z end
     local rpos = { x=round(pos.x), y=round(pos.y), z=round(pos.z)}
     table.insert(nodes, { pos=rpos, mat=materials[mat] } )
     pos = pos + matrix.transpose(rot, x)
     end
      end
      axpos = axpos+1
   end
   
   local vm = VoxelManip()
   min, max = vm:read_from_map(min, max)
   local area = VoxelArea:new{ MinEdge = min, MaxEdge = max }
   local data = vm:get_data()

   for _, node in pairs(nodes) do
      local index = area:indexp(node.pos)
      data[index] = node.mat
   end
   
   vm:set_data(data)
   vm:write_to_map()
   vm:update_map()
   print(string.format("placed %i nodes", #nodes))
end

minetest.register_tool("lsystem:ltool", {
   description = "lsystem spawner",
   inventory_image = "default_stick.png",
   on_use = function(itemstack, user, pointed_thing)
      local t1 = os.clock()
      local pos = pointed_thing.above
      if not pos then return end
      lsystem.spawn(pos, penrose)
      local time = (os.clock() - t1) * 1000
      print(string.format("elapsed time: %.2fms", time))
   end
})

matrix.new = function()
   local m = {}
   for i = 1,4 do m[i] = {}
   for j = 1,4 do m[i][j] = 0
   end
   end
   return m
end

matrix.id = function()
   local m = {}
   for i = 1, 4 do m[i] = {}
   for j = 1, 4 do
      if i == j then
     m[i][j] = 1
      else
     m[i][j] = 0
      end
   end
   end
   return m
end

matrix.mul = function(m1, m2)
   local m = {}
   for i = 1, 4 do m[i] = {}
   for j = 1, 4 do
      local num = 0
      for n = 1, 4 do
     num = num + m1[i][n] * m2[n][j]
      end
      m[i][j] = num
   end
   end
   return m
end

matrix.orient = function(m, angle, axis)
   local c = math.cos(angle)
   local s = math.sin(angle)
   local t = 1.0 - c
   
   local tx  = t * axis.x
   local ty  = t * axis.y
   local tz  = t * axis.z
   local sx  = s * axis.x
   local sy  = s * axis.y
   local sz  = s * axis.z
   
   m[1][1] = tx * axis.x + c
   m[1][2] = tx * axis.y + sz
   m[1][3] = tx * axis.z - sy
   
   m[2][1] = ty * axis.x - sz
   m[2][2] = ty * axis.y + c
   m[2][3] = ty * axis.z + sx
   
   m[3][1] = tz * axis.x + sy
   m[3][2] = tz * axis.y - sx
   m[3][3] = tz * axis.z + c
   return m
end

matrix.transpose = function (m, v)
   local x = m[1][1] * v.x + m[2][1] * v.y + m[3][1] * v.z + m[4][1]
   local y = m[1][2] * v.x + m[2][2] * v.y + m[3][2] * v.z + m[4][2]
   local z = m[1][3] * v.x + m[2][3] * v.y + m[3][3] * v.z + m[4][3]
   return vector.new(x,y,z)
end



[/spoiler]
Last edited by jin_xi on Sun Oct 06, 2013 07:40, edited 1 time in total.
 

User avatar
Casimir
Member
 
Posts: 1101
Joined: Fri Aug 03, 2012 16:59

by Casimir » Sat Oct 05, 2013 15:35

Looks great. Code?
 

User avatar
Aqua
Member
 
Posts: 641
Joined: Wed Aug 22, 2012 09:11

by Aqua » Sun Oct 06, 2013 11:51

Chinchow wrote:Is it possible to restrict an object so it can only be crafted by a certain surface for example

{}{}{} {}

thats the area but as you can see you could craft with the normal craft is there a way to stop that?

Umm. Can you explain clearer?
Hi there ^.~
 

ElectricSolstice
Member
 
Posts: 90
Joined: Tue Aug 20, 2013 02:00

by ElectricSolstice » Mon Oct 07, 2013 02:09

Is there a more efficient way of removing a bunch of nodes other than calling remove_node on each of their positions? Turtles seem to only want to replace air.

EDIT: Haven't tried it yet, but maybe it's the VoxelManip I'm wanting to use?

Second EDIT: Well, VoxelManip works. Not sure of the difference yet, but it does work as an alternative, so will leave it with it.
Last edited by ElectricSolstice on Mon Oct 07, 2013 05:30, edited 1 time in total.
 

User avatar
Chinchow
Member
 
Posts: 683
Joined: Tue Sep 18, 2012 21:37

by Chinchow » Mon Oct 07, 2013 03:13

Aqua wrote:
Chinchow wrote:Is it possible to restrict an object so it can only be crafted by a certain surface for example

{}{}{} {}

thats the area but as you can see you could craft with the normal craft is there a way to stop that?

Umm. Can you explain clearer?


Imagine the area I just showed
[] [] [] []
is the crafting area made with a special block
NNow objects crafted with this could also be made with the normal craft area
II would like to restrict certain objects so they can only be crafted with this.
Sometimes, it's harder to think up a mod than it is to create it.
Mods: Orichalcum Stonebricks Extra Chests
 

User avatar
LionsDen
Member
 
Posts: 525
Joined: Thu Jun 06, 2013 03:19

by LionsDen » Mon Oct 07, 2013 05:31

Chinchow wrote:
Aqua wrote:
Chinchow wrote:Is it possible to restrict an object so it can only be crafted by a certain surface for example

{}{}{} {}

thats the area but as you can see you could craft with the normal craft is there a way to stop that?

Umm. Can you explain clearer?


Imagine the area I just showed
[] [] [] []
is the crafting area made with a special block
NNow objects crafted with this could also be made with the normal craft area
II would like to restrict certain objects so they can only be crafted with this.


I haven't done this myself, but if you look at the technic mod, specifically the alloy furnace it might give some insight into doing what you want.
 

User avatar
jojoa1997
Member
 
Posts: 2890
Joined: Thu Dec 13, 2012 05:11

by jojoa1997 » Wed Oct 09, 2013 12:09

How would I get the group of a node and change it via minetest.registered_tool()
Last edited by jojoa1997 on Wed Oct 09, 2013 12:09, edited 1 time in total.
Coding;
1X coding
3X debugging
12X tweaking to be just right
 

User avatar
Chinchow
Member
 
Posts: 683
Joined: Tue Sep 18, 2012 21:37

by Chinchow » Fri Oct 11, 2013 00:29

As you can see this code is merely the farming growth abm changed a little however when I run the mod it is because of the end portion it won't run. Does anyone know why?

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_abm({
    nodenames = {"group:plant_wheat"},
    neighbors = {"group:soil"},
    interval = 90,
    chance = 2,
    action = function(pos, node)
        -- return if already full grown
        if minetest.get_item_group(node.name, "plant_wheat") == 8 then
            return
        end
Sometimes, it's harder to think up a mod than it is to create it.
Mods: Orichalcum Stonebricks Extra Chests
 

aleksix
New member
 
Posts: 7
Joined: Thu Oct 10, 2013 08:15

by aleksix » Fri Oct 11, 2013 03:29

Chinchow wrote:As you can see this code is merely the farming growth abm changed a little however when I run the mod it is because of the end portion it won't run. Does anyone know why?


You forgot the last "end" for "function".
Here:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_abm({
    nodenames = {"group:plant_wheat"},
    neighbors = {"group:soil"},
    interval = 90,
    chance = 2,
    action = function(pos, node)
        -- return if already full grown
        if minetest.get_item_group(node.name, "plant_wheat") == 8 then
            return
        end
    end
 

Gronx
Member
 
Posts: 10
Joined: Fri Oct 11, 2013 14:09

by Gronx » Fri Oct 11, 2013 14:17

A couple of questions if I may. I'm going to have a go at generating small settlements and villages but I'd like to start with the best tools for the job.

1: What are the pros and cons of the schematic api and the world edit mod? Is there an appreciable speed difference?

2: Does anyone know of a mod which uses the schematic api. It's a lot easier to do if you have a working example.
Last edited by Gronx on Fri Oct 11, 2013 15:28, edited 1 time in total.
 

aleksix
New member
 
Posts: 7
Joined: Thu Oct 10, 2013 08:15

by aleksix » Sat Oct 12, 2013 17:24

Is it possible to generate nodes on the fly?
 

ElectricSolstice
Member
 
Posts: 90
Joined: Tue Aug 20, 2013 02:00

by ElectricSolstice » Sat Oct 12, 2013 17:37

What dimensions are the chunks in minetest? (length, width, and height)
 

Nore
Member
 
Posts: 468
Joined: Wed Nov 28, 2012 11:35
GitHub: Ekdohibs

by Nore » Sat Oct 12, 2013 17:56

aleksix wrote:Is it possible to generate nodes on the fly?

Yes, but they won't be visible on the client until it is disconnected and connected again (on a server)

ElectricSolstice wrote:What dimensions are the chunks in minetest? (length, width, and height)

There are the blocks, which are 16x16x16 nodes, and the chunks (used for mapgen), which are 5x5x5 blocks.
 

ElectricSolstice
Member
 
Posts: 90
Joined: Tue Aug 20, 2013 02:00

by ElectricSolstice » Sat Oct 12, 2013 18:02

Nore wrote:
aleksix wrote:Is it possible to generate nodes on the fly?

Yes, but they won't be visible on the client until it is disconnected and connected again (on a server)

ElectricSolstice wrote:What dimensions are the chunks in minetest? (length, width, and height)

There are the blocks, which are 16x16x16 nodes, and the chunks (used for mapgen), which are 5x5x5 blocks.


Thanks ^_^ I guess what I'm really wanting to know is how far away from yourself would the blocks start unloading. Would be useful information for figuring out how to deal with connected cables when part of the connection isn't loaded.
Last edited by ElectricSolstice on Sat Oct 12, 2013 18:05, edited 1 time in total.
 

aleksix
New member
 
Posts: 7
Joined: Thu Oct 10, 2013 08:15

by aleksix » Sat Oct 12, 2013 18:02

Nore wrote:
aleksix wrote:Is it possible to generate nodes on the fly?

Yes, but they won't be visible on the client until it is disconnected and connected again (on a server)

Actually,it looks like it's crashing server(singleplayer emulates server,right? 4.7.7-stable) but whatever .Too bad I didn't know that before trying to do my 3d printer.
 

User avatar
fairiestoy
Member
 
Posts: 191
Joined: Sun Jun 09, 2013 19:25

by fairiestoy » Sat Oct 12, 2013 20:47

Hey guys,

i totally stuck on this problem and finally decided to ask here in the forum. Its about this: I wanted to create a furnace which is not working with ABMs too make sure that server lags are causing to much of time loss as well as having a furnace which is capable of working even when the chunk is not loaded. But for some reason, i get the same annoying error over and over again.

This line is the one which bothers me with the error that temp_stack is a nil value after trying to access fuel.item. I know that this should be nil but only if the method call minetest.get_craft_result() fails. And thats the tricky part: I don't get why it is failing.

Would be nice if someone could point me to my mistake -_-

Greetings
Interesting about new things is, to figure out how it works ...
 

derpswa99
Member
 
Posts: 78
Joined: Sun Mar 24, 2013 21:26

by derpswa99 » Mon Oct 14, 2013 17:55

how do you use the range for tools thing
 

User avatar
Evergreen
Member
 
Posts: 2131
Joined: Sun Jan 06, 2013 01:22
GitHub: 4Evergreen4
IRC: EvergreenTree
In-game: Evergreen

by Evergreen » Mon Oct 14, 2013 18:39

derpswa99 wrote:how do you use the range for tools thing

Just put this into the tool definition. (replace 10 with whatever range you want)
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
range = 10,
"Help! I searched for a mod but I couldn't find it!"
http://krock-works.16mb.com/MTstuff/modSearch.php
 

derpswa99
Member
 
Posts: 78
Joined: Sun Mar 24, 2013 21:26

by derpswa99 » Mon Oct 14, 2013 18:59

Evergreen wrote:
derpswa99 wrote:how do you use the range for tools thing

Just put this into the tool definition. (replace 10 with whatever range you want)
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
range = 10,


Sorry, but can I get an example
 

derpswa99
Member
 
Posts: 78
Joined: Sun Mar 24, 2013 21:26

by derpswa99 » Mon Oct 14, 2013 19:00

Evergreen wrote:
derpswa99 wrote:how do you use the range for tools thing

Just put this into the tool definition. (replace 10 with whatever range you want)
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
range = 10,


Sorry, but can I get an example
 

User avatar
Evergreen
Member
 
Posts: 2131
Joined: Sun Jan 06, 2013 01:22
GitHub: 4Evergreen4
IRC: EvergreenTree
In-game: Evergreen

by Evergreen » Mon Oct 14, 2013 19:10

derpswa99 wrote:
Evergreen wrote:
derpswa99 wrote:how do you use the range for tools thing

Just put this into the tool definition. (replace 10 with whatever range you want)
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
range = 10,


Sorry, but can I get an example
Fine, if you say so. (You should know what things to replace in this code)
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_tool("default:pick_stone", {
    description = "Stone Pickaxe",
    inventory_image = "default_tool_stonepick.png",
    range = 3,
    tool_capabilities = {
        full_punch_interval = 1.3,
        max_drop_level=0,
        groupcaps={
            cracky = {times={[2]=2.0, [3]=1.20}, uses=20, maxlevel=1},
        },
        damage_groups = {fleshy=3},
    },
})
"Help! I searched for a mod but I couldn't find it!"
http://krock-works.16mb.com/MTstuff/modSearch.php
 

derpswa99
Member
 
Posts: 78
Joined: Sun Mar 24, 2013 21:26

by derpswa99 » Mon Oct 14, 2013 19:18

It doesnt work is there an error in my code becuse it's not working
here's the code, please post any problem you see


Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_tool("meteor:meteor_laser", {
    description = "Meteor Laser Gun",
    inventory_image = "meteor_tool_laser.png",
    range = 15,
    tool_capabilities = {
        full_punch_interval = 0.1,
        max_drop_level=1,
        groupcaps={
            cracky = {times={[1]=0.03, [2]=0.02, [3]=0.01}, uses=1000, maxlevel=1},
        },
        damage_groups = {fleshy=10},
    },
})


Unfortanely there is no error showing in the debug.txt but it just does not work, sorry, but i cant do anything about. I want to fix this this as fast as possible so I can release this mod but I cant
Last edited by derpswa99 on Tue Oct 15, 2013 04:30, edited 1 time in total.
 

User avatar
Evergreen
Member
 
Posts: 2131
Joined: Sun Jan 06, 2013 01:22
GitHub: 4Evergreen4
IRC: EvergreenTree
In-game: Evergreen

by Evergreen » Mon Oct 14, 2013 20:05

derpswa99 wrote:It doesnt work is there an error in my code becuse it's not working
here's the code, please post any problem you see


minetest.register_tool("meteor:meteor_laser", {
description = "Meteor Laser Gun",
inventory_image = "meteor_tool_laser.png",
range = 15,
tool_capabilities = {
full_punch_interval = 0.1,
max_drop_level=1,
groupcaps={
cracky = {times={[1]=0.03, [2]=0.02, [3]=0.01}, uses=1000, maxlevel=1},
},
damage_groups = {fleshy=10},
},
})
*sigh* Please post the full error from debug.txt. Also, please use the "code" tags instead of plain text.
"Help! I searched for a mod but I couldn't find it!"
http://krock-works.16mb.com/MTstuff/modSearch.php
 

User avatar
Chinchow
Member
 
Posts: 683
Joined: Tue Sep 18, 2012 21:37

by Chinchow » Wed Oct 16, 2013 00:36

I've encountered a new error, if I put this:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
for c=1,2,3,4,5,6,7,8 do

I get "do expected near ,"

If I put this:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
for c=1,8 do

I get "attempt to concatenate global 'c' a nil value"
Any fixes?
Sometimes, it's harder to think up a mod than it is to create it.
Mods: Orichalcum Stonebricks Extra Chests
 

User avatar
general3214
Member
 
Posts: 118
Joined: Fri Oct 04, 2013 03:15

by general3214 » Wed Oct 16, 2013 01:32

Evergreen wrote:
derpswa99 wrote:how do you use the range for tools thing

Just put this into the tool definition. (replace 10 with whatever range you want)
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
range = 10,

Do you know the normal value for the range?
March 6, 2014, 8:37 PM PST: I will no longer continue my mods.
Mods | GitHub | MCF
Avatar made by Annahstas
 

PreviousNext

Return to Modding Discussion

Who is online

Users browsing this forum: No registered users and 1 guest

cron