Infinite, Stackable Inventory/Crafting/Vendor - UPDATED v1.5
Forum rules
Do not post questions here!
This forum is for example code you want to show other people. Ren'Py questions should be asked in the Ren'Py Questions and Announcements forum.
Do not post questions here!
This forum is for example code you want to show other people. Ren'Py questions should be asked in the Ren'Py Questions and Announcements forum.
- saguaro
- Miko-Class Veteran
- Posts: 560
- Joined: Sun Feb 12, 2012 9:17 am
- Completed: Locked-In, Sunrise, The Censor
- Organization: Lucky Special Games
- itch: saguarofoo
- Location: USA
- Contact:
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
Thanks for checking it out. Once you hide the crafting screen you can show it again by clicking a craftable item (while in inventory mode) but if you see anything else amiss, let me know and I will correct it. I should have a new version out in a day or two.
-
- Newbie
- Posts: 12
- Joined: Mon May 19, 2014 10:45 pm
- Contact:
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
Hi,
I've managed to code myself out of one of the things I asked, how to transfer money instead of inventory items. I code it thusly:Currently, it's hardcoded to 10 units per click, but I bet there's a way to make it into a variable input. Perhaps you could add it in the next version?
I've managed to code myself out of one of the things I asked, how to transfer money instead of inventory items. I code it thusly:
Code: Select all
...
def real_transfer(seller, buyer, money):
if seller.money > money:
seller.money -= money
buyer.money += money
renpy.restart_interaction()
transfer = renpy.curry(real_transfer)
...
screen inventory_view(inventory, second_inventory=False, trade_mode=False):
vbox:
label inventory.name
if second_inventory and trade_mode:
textbutton ("Money: " + str(inventory.money)) action transfer(inventory, second_inventory, 10)
else:
text ("Money: " + str(inventory.money))
...
- noeinan
- Eileen-Class Veteran
- Posts: 1153
- Joined: Sun Apr 04, 2010 10:10 pm
- Projects: Ren'Py QuickStart, Crimson Rue
- Organization: Statistically Unlikely Games
- Deviantart: noeinan
- Github: noeinan
- Location: Washington State, USA
- Contact:
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
Ah, that makes sense! I had just added a button under the "View" section called "Craft" that toggled the craft screen on and off-- but then the craft button was still there when you see a vendor, which is a bit of a problem. In the game I'm making, I'd probably not need to worry about it in any case, though, since the would only be able to craft at a specific location (a forge).saguaro wrote:Thanks for checking it out. Once you hide the crafting screen you can show it again by clicking a craftable item (while in inventory mode) but if you see anything else amiss, let me know and I will correct it. I should have a new version out in a day or two.
Glad to hear another version will be coming out!
- saguaro
- Miko-Class Veteran
- Posts: 560
- Joined: Sun Feb 12, 2012 9:17 am
- Completed: Locked-In, Sunrise, The Censor
- Organization: Lucky Special Games
- itch: saguarofoo
- Location: USA
- Contact:
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
storymasterq, thanks for your requests, it gave me an opportunity to refactor this quite a bit, even though it's relatively new code. You and I had similar thoughts on how to implement banking, though I use separate trade/bank modes in the event the dev simply wants to trade items and not monies. I included different types of controls (slider and several buttons) as examples. Inventories now have a barter variable which will modify prices and round down with int.
This code is "tested" *ahem* but I welcome any corrections. I'm almost positive no one uses the textbutton feature, because I found mistake in the textbutton actions that surely would have been noticed with usage, but I kept them in there anyway.
This code is "tested" *ahem* but I welcome any corrections. I'm almost positive no one uses the textbutton feature, because I found mistake in the textbutton actions that surely would have been noticed with usage, but I kept them in there anyway.
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
I'm just curious here, how would you add in a consumable action? It would get rid of the item and heal the player, but also be able to use in crafting. Like an apple could heal 10HP and still be baked into an apple pie?
And also, is it possible to have an crafting item at a set place or destination? Like you can craft just about anywhere, but can only craft in certain areas that have a stove? I give the player 10 fire when they arrive and take it away as they leave, but it's just awkward to see that you have a number of fires.
And for whatever reason, I'm having the hardest time having the player receive money other than selling, I know I'm missing the most simple thing...
And also, is it possible to have an crafting item at a set place or destination? Like you can craft just about anywhere, but can only craft in certain areas that have a stove? I give the player 10 fire when they arrive and take it away as they leave, but it's just awkward to see that you have a number of fires.
And for whatever reason, I'm having the hardest time having the player receive money other than selling, I know I'm missing the most simple thing...
- saguaro
- Miko-Class Veteran
- Posts: 560
- Joined: Sun Feb 12, 2012 9:17 am
- Completed: Locked-In, Sunrise, The Censor
- Organization: Lucky Special Games
- itch: saguarofoo
- Location: USA
- Contact:
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
I think the best way is to change up how the crafting screen is toggled and divorce crafting from item.act completely, and then for your apple just reference a function that adds hp and drops the item.lovebby wrote:I'm just curious here, how would you add in a consumable action? It would get rid of the item and heal the player, but also be able to use in crafting. Like an apple could heal 10HP and still be baked into an apple pie?
This would resolve your second issue as well, because I can just set up a variable like crafting_available and make opening the crafting screen dependent on that.
With the above change, yeah. Do you mean--you can craft anywhere, but only cook in areas that have a stove? If there are different types of crafting, we'd probably need to update the Item class to distinguish between types, like food versus armor or whatever, and set up some variables so you can only craft food items when a stove is present (stovetop_available = True, I guess)And also, is it possible to have an crafting item at a set place or destination? Like you can craft just about anywhere, but can only craft in certain areas that have a stove? I give the player 10 fire when they arrive and take it away as they leave, but it's just awkward to see that you have a number of fires.
You can add money to an inventory like soAnd for whatever reason, I'm having the hardest time having the player receive money other than selling, I know I'm missing the most simple thing...
$ jane_inv.money += 500
I think the crafting changes should be implemented... and honestly, I figured someone would be interested in item 'types' eventually so I knew that would need to be added down the road. I'll try to make an update after I think about how best to set it up.
-
- Newbie
- Posts: 12
- Joined: Mon May 19, 2014 10:45 pm
- Contact:
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
Also, what about crafting is allowed only if you have a certain item? Or in fact, recipes that can only be completed if you are holding the item required, but said required item is not expended? So, maybe, if you have a nut and a bolt, you'll need a screwdriver to do things with them, but the screwdriver itself is still there after the draft.
Or how about, crafting items that results in more than one item? Say, combining a flask of A and a flask of B results in a flask of C and an empty flask? This is probably way too complicated, though...
Or how about, crafting items that results in more than one item? Say, combining a flask of A and a flask of B results in a flask of C and an empty flask? This is probably way too complicated, though...
Proofreading for Free - here - Current project(s): None
Currently working on: My first VN, a futuristic slice-of-life with a hint of romance.
Currently working on: My first VN, a futuristic slice-of-life with a hint of romance.
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
Ah okay, I'll have to fiddle with that. I did feel it was a bit odd the way the crafting screen was called, I was sort of expecting a button for that.I think the best way is to change up how the crafting screen is toggled and divorce crafting from item.act completely, and then for your apple just reference a function that adds hp and drops the item.
This would resolve your second issue as well, because I can just set up a variable like crafting_available and make opening the crafting screen dependent on that.
Classes! Okay, I'll try that out too. I'm not very good with this coding, but I'll do my best.With the above change, yeah. Do you mean--you can craft anywhere, but only cook in areas that have a stove? If there are different types of crafting, we'd probably need to update the Item class to distinguish between types, like food versus armor or whatever, and set up some variables so you can only craft food items when a stove is present (stovetop_available = True, I guess)
Aha, there was my issue. I was just trying jane.money! Silly me. I'll be looking forward to the update then, and thnaks again for your help!You can add money to an inventory like so
$ jane_inv.money += 500
I think the crafting changes should be implemented... and honestly, I figured someone would be interested in item 'types' eventually so I knew that would need to be added down the road. I'll try to make an update after I think about how best to set it up.
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
I get this when I'm running the demo:
Code: Select all
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/script.rpy", line 51, in script
"You can hover over the items to see a description. If you click on the sword you will perform the action associated with that item (jump to a label). If you click on crafting ingredients you can view the crafting screen and make a doll. You can also sort inventory several ways, and you can also switch between a grid and list view. If you're using text items you'll probably only want to enable the list view."
File "game/inventory.rpy", line 166, in <module>
use inventory_view(inventory)
File "game/inventory.rpy", line 197, in <module>
if single_inventory:
NameError: name 'single_inventory' is not defined
-
- Newbie
- Posts: 1
- Joined: Thu Dec 18, 2014 6:57 am
- Contact:
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
It's not working for me, either. This is what I get:
I started your demo game (inventory 1.3 all) 'as is' with no modifications. Am I missing some prerequisite or library?
Satan_Klaus
Code: Select all
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/script.rpy", line 94, in script
$ renpy.pause()
File "game/script.rpy", line 94, in <module>
$ renpy.pause()
File "game/inventory.rpy", line 266, in <module>
use inventory_view(first_inventory, second_inventory, trade_mode)
File "game/inventory.rpy", line 197, in <module>
if single_inventory:
NameError: name 'single_inventory' is not defined
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/script.rpy", line 94, in script
$ renpy.pause()
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\ast.py", line 785, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\python.py", line 1382, in py_exec_bytecode
exec bytecode in globals, locals
File "game/script.rpy", line 94, in <module>
$ renpy.pause()
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\exports.py", line 1126, in pause
rv = renpy.ui.interact(mouse='pause', type='pause', roll_forward=roll_forward)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\ui.py", line 247, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\display\core.py", line 2149, in interact
repeat, rv = self.interact_core(preloads=preloads, **kwargs)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\display\core.py", line 2397, in interact_core
root_widget.visit_all(lambda i : i.per_interact())
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\display\core.py", line 338, in visit_all
d.visit_all(callback)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\display\core.py", line 338, in visit_all
d.visit_all(callback)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\display\core.py", line 338, in visit_all
d.visit_all(callback)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\display\screen.py", line 382, in visit_all
callback(self)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\display\core.py", line 2397, in <lambda>
root_widget.visit_all(lambda i : i.per_interact())
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\display\screen.py", line 394, in per_interact
self.update()
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\display\screen.py", line 555, in update
self.screen.function(**self.scope)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\screenlang.py", line 1251, in __call__
renpy.python.py_exec_bytecode(self.code.bytecode, locals=scope)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\python.py", line 1382, in py_exec_bytecode
exec bytecode in globals, locals
File "game/inventory.rpy", line 266, in <module>
use inventory_view(first_inventory, second_inventory, trade_mode)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\display\screen.py", line 936, in use_screen
screen.function(**scope)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\screenlang.py", line 1251, in __call__
renpy.python.py_exec_bytecode(self.code.bytecode, locals=scope)
File "C:\Users\massa\Desktop\Renpy\renpy-6.18.3-sdk\renpy\python.py", line 1382, in py_exec_bytecode
exec bytecode in globals, locals
File "game/inventory.rpy", line 197, in <module>
if single_inventory:
NameError: name 'single_inventory' is not defined
Windows-post2008Server-6.2.9200
Ren'Py 6.18.3.761
Inventory Demo 1.3
Satan_Klaus
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
Having issues as well. Started a clean game and added stuff from the ground up, it worked up until I added items. This is the error message I got:
My script file:
Inventory.rpy and all other screens are just direct copies of the demo files (but with the overlay screen defined in inventory.rpy). I'll keep messing around to see what I'm doing wrong, but I have zero python knowledge so I won't get very far very fast on my own.
Oh, I should mention the demo works perfectly on its own when opening from the executable, but for some reason it doesn't work when copying over the images/script/options/screens/inventory files into a new project.
Edit:
I think I've figured out the problem, but not the solution. The scope of single_inventory and tt (the tooltip) seem to be what's causing it. When the vendor or inventory screens call inventory_view, inventory_view can't access their values for single_inventory and tt, or something. I don't really know. I have no idea what I'm doing. I thought this code was a dream come true but... it's turning into quite the nightmare.
Code: Select all
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/script.rpy", line 64, in script
$ renpy.pause()
File "game/script.rpy", line 64, in <module>
$ renpy.pause()
File "game/inventory.rpy", line 156, in execute
screen inventory_screen(inventory):
File "game/inventory.rpy", line 161, in execute
frame:
File "game/inventory.rpy", line 163, in execute
hbox:
File "game/inventory.rpy", line 164, in execute
vbox:
File "game/inventory.rpy", line 166, in execute
use inventory_view(inventory)
File "game/inventory.rpy", line 181, in execute
screen inventory_view(inventory, second_inventory=False, trade_mode=False):
File "game/inventory.rpy", line 182, in execute
vbox:
File "game/inventory.rpy", line 183, in execute
side "c r":
File "game/inventory.rpy", line 185, in execute
viewport id "vp":
File "game/inventory.rpy", line 188, in execute
if inventory.grid_view: # grid view
File "game/inventory.rpy", line 192, in execute
grid 3 grid_y:
File "game/inventory.rpy", line 194, in execute
for item in inventory.inv:
File "game/inventory.rpy", line 195, in execute
if item[0].icon:
File "game/inventory.rpy", line 197, in execute
if single_inventory:
NameError: name 'single_inventory' is not defined
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/script.rpy", line 64, in script
$ renpy.pause()
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\ast.py", line 785, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\python.py", line 1382, in py_exec_bytecode
exec bytecode in globals, locals
File "game/script.rpy", line 64, in <module>
$ renpy.pause()
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\exports.py", line 1126, in pause
rv = renpy.ui.interact(mouse='pause', type='pause', roll_forward=roll_forward)
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\ui.py", line 247, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\display\core.py", line 2149, in interact
repeat, rv = self.interact_core(preloads=preloads, **kwargs)
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\display\core.py", line 2397, in interact_core
root_widget.visit_all(lambda i : i.per_interact())
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\display\core.py", line 338, in visit_all
d.visit_all(callback)
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\display\core.py", line 338, in visit_all
d.visit_all(callback)
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\display\core.py", line 338, in visit_all
d.visit_all(callback)
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\display\screen.py", line 382, in visit_all
callback(self)
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\display\core.py", line 2397, in <lambda>
root_widget.visit_all(lambda i : i.per_interact())
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\display\screen.py", line 394, in per_interact
self.update()
File "G:\Transfer 062114\renpy-6.14.1-sdk\renpy\display\screen.py", line 555, in update
self.screen.function(**self.scope)
File "game/inventory.rpy", line 156, in execute
screen inventory_screen(inventory):
File "game/inventory.rpy", line 161, in execute
frame:
File "game/inventory.rpy", line 163, in execute
hbox:
File "game/inventory.rpy", line 164, in execute
vbox:
File "game/inventory.rpy", line 166, in execute
use inventory_view(inventory)
File "game/inventory.rpy", line 181, in execute
screen inventory_view(inventory, second_inventory=False, trade_mode=False):
File "game/inventory.rpy", line 182, in execute
vbox:
File "game/inventory.rpy", line 183, in execute
side "c r":
File "game/inventory.rpy", line 185, in execute
viewport id "vp":
File "game/inventory.rpy", line 188, in execute
if inventory.grid_view: # grid view
File "game/inventory.rpy", line 192, in execute
grid 3 grid_y:
File "game/inventory.rpy", line 194, in execute
for item in inventory.inv:
File "game/inventory.rpy", line 195, in execute
if item[0].icon:
File "game/inventory.rpy", line 197, in execute
if single_inventory:
File "<screen language>", line 197, in <module>
NameError: name 'single_inventory' is not defined
Windows-7-6.1.7601-SP1
Ren'Py 6.18.3.761
Inventory Demo 1.3
Code: Select all
label start:
$ cookbook = list()
######### DEFINE INVENTORIES ##########
$ zosi_inv = Inventory("Zosi")
$ mindy_inv = Inventory("Mindy", 500, 75)
$ chest = Inventory("Storage Chest")
######### DEFINE ITEM OBJECTS ##########
### The format is name, description, icon image (if applicable), value (if applicable, selling/buying value), use/action (screen language action to be performed when icon is clicked on inventory screen), and recipe (if craftable).
### Items without icons are created like this:
#$ quarter = Item("Quarter", "A new quarter")
### Items with icons are created like this:
$ eye = Item("Eyeball", "A human eyeball, how creepy!", "images/eye.png", 250)
### Items that can be used in crafting
$ but = Item("Button", "A shiny button", "images/button.png", 100, act=crafting)
$ yarn = Item("Yarn", "Yarny yarny yarn.", "images/yarn.png", 30, act=crafting)
$ fabric = Item("Fabric", "You know, cloth.", "images/fabric.png", 100, act=crafting)
$ coin = Item("Coin", "An old coin", "images/coin.png", 1, act=crafting)
### An item with a unique action (jumps to label)
$ sword = Item("Awesome Sword", "An awesome sword.", "images/sword.png", 500, Jump("sword_clicky"))
### An item that can be crafted has a recipe, which is a nested list of [ingredient, qty]
$ necklace = Item("Penny Necklace", "Super magic.", "images/necklace.png", 50, recipe=[[coin,6],[yarn,1]])
$ doll = Item("Handmade Doll", "Guaranteed to bring luck. (Or not?) Very huggable, mind the needle.", "images/doll.png", 100000, recipe=[[but,2],[fabric,3],[yarn,1]])
########################################
show screen overlay
show screen inventory_screen(zosi_inv)
"Blah blah blah."
$ zosi_inv.take(coin,4)
$ zosi_inv.take(sword)
$ zosi_inv.take(eye)
$ zosi_inv.take(but,2)
$ zosi_inv.take(fabric,3)
$ zosi_inv.take(yarn,2)
$ zosi_inv.money = 500
$ mindy_inv = Inventory("Mindy", 500, 75)
$ mindy_inv.take(eye,4)
$ mindy_inv.take(but,3)
$ mindy_inv.take(coin,2)
jump looping
label looping:
$ renpy.pause()
jump looping
return
Oh, I should mention the demo works perfectly on its own when opening from the executable, but for some reason it doesn't work when copying over the images/script/options/screens/inventory files into a new project.
Edit:
I think I've figured out the problem, but not the solution. The scope of single_inventory and tt (the tooltip) seem to be what's causing it. When the vendor or inventory screens call inventory_view, inventory_view can't access their values for single_inventory and tt, or something. I don't really know. I have no idea what I'm doing. I thought this code was a dream come true but... it's turning into quite the nightmare.
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
It seems to conflict with the latest version of renpy.Skhizein wrote: Edit:
I think I've figured out the problem, but not the solution. The scope of single_inventory and tt (the tooltip) seem to be what's causing it. When the vendor or inventory screens call inventory_view, inventory_view can't access their values for single_inventory and tt, or something. I don't really know. I have no idea what I'm doing. I thought this code was a dream come true but... it's turning into quite the nightmare.
use inventory_view(inventory) doesn't send:
default single_inventory = True
default tt = Tooltip("")
to the inventory_view
http://www.renpy.org/doc/html/screens.html#use
Not sure exactly what this is saying, but it sounds like if it has parameters it loses the variables of the screen that called it. Which the code seems to need.If the used screen include parameters, its scope is initialized to the result of assigning the arguments to those parameters. Otherwise, it is passed the scope of the current screen, updated with any keyword arguments passed to the screen.
I can fix it by getting rid of the default variables and setting "screen inventory_view(inventory, second_inventory=False, trade_mode=False, single_inventory = True):"
hovered [tt.Action("%s: %s (List Value %d)" % (item[0].name, item[0].desc, item[0].value)), Show("inventory_tooltip")]
I still don't understand why inventory_tooltip doesn't work when it worked in the old version.
"use inventory_tooltip" in inventory_screen isn't necessary now but I don't know why it worked in the first place. The value in the tooltip does get updated when hovered but how was that screen getting called and showing it in the old code?
- AsHLeX
- Miko-Class Veteran
- Posts: 556
- Joined: Wed Dec 25, 2013 1:09 pm
- Completed: Starlight Dreamers, Mysterious Melody, Town of Memories, Marked, To Fly, The Change, Him From The Past, A Forgotten Memory
- Projects: Cafe Mysteria
- Location: Malaysia
- Contact:
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
Thank you so much for this!!! It'll definitely come in handy :')
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
I ran into the same problem as xanzero with this system and the latest Renpy version and can confirm that those default settings aren't registered anymore. I booted up my game after updating to renpy-6.99.5 and suddenly I cannot use my inventory anymore.
Is there someone that does have the solution for us or can update this script, or am I confined to version renpy-6.17.3 now?
Is there someone that does have the solution for us or can update this script, or am I confined to version renpy-6.17.3 now?
- firecat
- Miko-Class Veteran
- Posts: 540
- Joined: Sat Oct 25, 2014 6:20 pm
- Completed: The Unknowns Saga series
- Projects: The Unknown Saga series
- Tumblr: bigattck
- Deviantart: bigattck
- Skype: bigattck firecat
- Soundcloud: bigattck-firecat
- Contact:
Re: Infinite, Stackable Inventory, Crafting, and Vendor Scre
well its official this code is broken until someone fix it.
Who is online
Users browsing this forum: halnye