1. Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

Dismiss Notice
This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

InteractiveShop | Easily configurable shops! 1.1.1

GUI-based shop easily configurable in-game.

  1. EWS
    INTERACTIVESHOP
    Functionality
    This script resource allows you to create GUI shops with ease! Everything is configured in-game, and yet it's more powerful than most shops!

    Features
    No external configuration.
    You can make any shop you want in-game, add cosmetic items in the gui and clone shops!
    Made to be used quick.
    There are two GUIs, in one of them you can buy/sell 1 item (normal click) and full stack of items (shift + click). In the other one, you'll see any quantity from 1 item to 1024 items (middle button).
    Actionbar based.
    If you buy thousands of items 1 by 1, it won't flood your chat.
    Function based.
    You can sell your own items on any event by using the following functions:
    - buyitem(amount, item, player, cost)
    - sellitem(amount, item, player, cost)
    Shops can be cloned with price modifiers.
    If your server has multiple shops, you can create a black market with prices that are 25% cheaper, with one command. Or create a VIP only shop, with 50% discounts.
    Full item support.
    If you want to add a one use only instant kill gold sword, you can. Also books, enchantments, and anything you can think of.
    Lagless.
    There are cooldowns for opening shops and buying items. Also, the code is optimized.
    Safe.
    It uses the TuSKe GUIs which are safe, lagless and very powerful.
    Simple.
    The plugin shows exactly what price you'll pay for any quantity you want to buy, and tells you how to buy and sell inside the own shop.
    Note: this script doesn't add player shops (yet), only admin shops.

    Configuration
    Code (Text):
    1.  
    2. #
    3. # Configuration area
    4. # All messages have been added in v1.1.1.
    5. #
    6. options:
    7.    # The no permission message.
    8.    P: &cⓧ &7You don't have the &crequired permission&7.
    9.  
    10.    # The time you have to wait when opening another shop.
    11.    shop.cooldown.open: 3 seconds
    12.    # The time you have to wait to buy another item
    13.    shop.cooldown.interact: 0.5 seconds
    14.  
    15.    shop.regex: \W-
    16.  
    17.    #
    18.    # Messages
    19.    # Note: you CAN add new lines in shops using:
    20.    # 'Message here||New line'. The numbers are there to keep it more organized.
    21.    #
    22.  
    23.    # -------------------------------------------------------------------------------
    24.    # This only appears if the item has a lore, under the buy and sell stuff.
    25.    # %lore of loop-value% = the lore of the item
    26.    shop.lore: "||||&6&lLORE:||%lore of loop-value%"
    27.    # -------------------------------------------------------------------------------
    28.  
    29.    # -------------------------------------------------------------------------------
    30.    # EDIT SHOP TEXT
    31.    # /shop edit [name]
    32.  
    33.    # Name of the empty slot item.
    34.    # %loop-number% = slot ID
    35.    shop.edit.empty: &fFree slot &a(%loop-number%)
    36.  
    37.    # Lore of the empty slot item.
    38.    shop.edit.empty.lore.1: &7Click &a&non the slot&7 to change it. Afterwards...
    39.    shop.edit.empty.lore.2: &f(1) &7Throw the item &a(Q) &7to make it cosmetic.
    40.    shop.edit.empty.lore.3: &f(2) &7Use &a/shop add [buyprice] [sellprice]
    41.    shop.edit.empty.lore.4: &7to create a price for it.
    42.    shop.edit.empty.lore.5: &f(3) &7Use &a/shop command [command] &7to make
    43.    shop.edit.empty.lore.6: &7it run a custom command.
    44.  
    45.    # Lore of an item being sold in edit shop.
    46.    # {_bp} = buy price
    47.    # {_m} = max stack price (x64)
    48.    # {_lore} = adds an extra space and the lore if it exists
    49.    shop.edit.sell.lore.1: &6Buy: &f\$%{_bp}% &7(\$%{_bp} * {_m}% x%{_m}%)
    50.    shop.edit.sell.lore.2: &6Sell: &f\$%{_sp}% &7(\$%{_sp} * {_m}% x%{_m}%)%{_lore}%
    51.    shop.edit.sell.lore.3: &f&lCLICK HERE TO REMOVE
    52.  
    53.    # Lore of a decorative item in the shop.
    54.    # {_lore} = adds an extra space and the lore if it exists
    55.    shop.edit.decorative.1: &7Decorative item.%{_lore}%
    56.    shop.edit.decorative.2: &f&lCLICK HERE TO REMOVE
    57.  
    58.    # Lore of an item which runs a command in the edit shop.
    59.    # {_cmd} = the command which will be run.
    60.    # {_lore} = adds an extra space and the lore if it exists
    61.    shop.edit.cmd.1: &7Command item.
    62.    shop.edit.cmd.2: &7Runs &a/%{_cmd}%%{_lore}%
    63.    shop.edit.cmd.3: &f&lCLICK HERE TO REMOVE
    64.    # -------------------------------------------------------------------------------
    65.  
    66.    # --------------------------------------------------------------------------------
    67.    # DETAILED ITEM TEXT
    68.    # [middle button on item]
    69.  
    70.    # The center head's name
    71.    shop.detailed.head: &f&lBUY / SELL
    72.  
    73.    # The center's head lore
    74.    shop.detailed.lore.1: &7In this part of the shop
    75.    shop.detailed.lore.2: &7you can buy or sell items in
    76.    shop.detailed.lore.3: &7exact quantities.
    77.  
    78.    # The lore of an item being sold in detailed shop.
    79.    shop.detailedbuy.lore.1: &6Buy: &f\$%{_bp} * {_m}% x%{_m}%
    80.    shop.detailedbuy.lore.2: &6Sell: &f\$%{_sp} * {_m}% x%{_m}%&aRightclick &7to buy &a\$%{_m}%&7.
    81.    shop.detailedbuy.lore.3: &aLeftclick &7to sell &ax%{_m}%&7.
    82.    # -------------------------------------------------------------------------------
    83.  
    84.    # -------------------------------------------------------------------------------
    85.    # DEFAULT SHOP TEXT
    86.    # /shop open [shop]
    87.  
    88.    # The shop's main lore.
    89.    # {_lore} = adds an extra space and the lore if it exists
    90.    # Use \$ instead of just $, otherwise your server will crash.
    91.    shop.normal.buy.1: &6Buy: &f\$%{_bp}% &7(\$%{_bp} * {_m}% x%{_m}%)
    92.    shop.normal.buy.2: &6Sell: &f\$%{_sp}% &7(\$%{_sp} * {_m}% x%{_m}%)
    93.    shop.normal.buy.3: &aShift + rightclick &7to buy &ax%{_m}%&7.
    94.    shop.normal.buy.4: &aMiddle button &7to show quantities.%{_lore}%
    95.    # -------------------------------------------------------------------------------
    96.  
    97.    # -------------------------------------------------------------------------------
    98.    # BUY & SELL MESSAGES
    99.  
    100.    # Shows up when you have not enough money to buy something.
    101.    # {_c} = cost of one unit
    102.    # {_n} = number of items you're buying
    103.    # {_c} * {_n} = the total value of all the items you are buying
    104.    shop.buy.nomoney: &fYou don't have &c\$%{_c} * {_n}% &fto buy this!
    105.  
    106.    # Shows up when you have no space in inventory.
    107.    shop.buy.nospace: &fYou don't have &cspace in inventory&f!
    108.  
    109.    # Shows up when you successfully buy something.
    110.    # {_n} = number of items you've bought
    111.    # type of {_i} = the type of the item you're buying (stone, diamond_sword...)
    112.    # {_price} = you know what it is
    113.    shop.buy.success: &fYou bought &ax%{_n}% %type of {_i}% &ffor &a\$%{_price}%&f.
    114.  
    115.    # Shows up when you have no items to sell.
    116.    # {_n} = number of items you're trying to sell.
    117.    # type of {_i} = the type of the item you're selling (stone, diamond_sword...)
    118.    shop.sell.noitem: &fVocê não tem &cx%{_n}% %type of {_i}%&f.
    119.    shop.sell.success: &fYou sold &ax%{_a}% %type of {_i}% &ffor &a\$%{_a} * {_c}%&f.
    120.    # -------------------------------------------------------------------------------
    121.  
    122.    # -------------------------------------------------------------------------------
    123.    # COMMAND MESSAGES
    124.  
    125.    # You're holding nothing in your hand and uses /rename.
    126.    cmd.rename.hold: &3ⒸⓂⒹ &cHold the item &7you want to rename.
    127.  
    128.    # Pops up when you successfully rename an item.
    129.    # %colored arg 1% = item's new name
    130.    cmd.rename.success: &3ⒸⓂⒹ &7Your item's name has been changed to &a'%colored arg 1%'&7.
    131.  
    132.    # You're not holding anything and uses /lore.
    133.    cmd.setlore.hold: &3ⒸⓂⒹ &cHold the item &7which you want to change the lore.
    134.  
    135.    # Shows up when you use /lore wrongly.
    136.    cmd.setlore.usage: &3ⒸⓂⒹ &7Usage: &c/lore [line] [lore]&7.
    137.  
    138.    # The line number is not valid.
    139.    # %arg 1% = the lore line
    140.    cmd.setlore.notnumber: &3ⒸⓂⒹ &c%arg 1% &7is not a valid number!
    141.  
    142.    # You successfully set the lore of an item.
    143.    # %arg 1 parsed as integer% = the lore line
    144.    # %arg 2% = the text that it has been changed to
    145.    cmd.setlore.success: &3ⒸⓂⒹ &7The line &a%arg 1 parsed as integer%&7 has been changed to &a%arg 2%&7.
    146.  
    147.    cmd.shop.open.usage: &7Usage: &c/shop open [shop]&7.
    148.    # %arg 2% = the name of the shop you're trying to open
    149.    cmd.shop.open.notfound: &7The shop &c%arg 2% &7does not exist!
    150.  
    151.    cmd.shop.create.usage: &7Usage: &c/shop create [size] [name]&7.
    152.    cmd.shop.create.integer: &7The &csize &7must be an &cinteger&7.
    153.    cmd.shop.create.number: &7The size must be between &c1 &7and &c6&7!
    154.    cmd.shop.create.notinregex: &7You can only use &cletters &7e &cnumbers&7.
    155.    # %arg 2% = the shop that already exists
    156.    cmd.shop.create.exists: &7The shop &c%arg 2% &7already &cexists&7!
    157.    cmd.shop.create.success: &7You created the shop &a%arg 3%&7.
    158.  
    159.    cmd.shop.edit.usage: &7Usage: &c/shop edit [shop]&7.
    160.    cmd.shop.edit.notfound: &7The shop &c%arg 2% &7doesn't exist!
    161.  
    162.    cmd.shop.add.usage: &7Usage: &c/shop add [buy price] [sell price]&7.
    163.    cmd.shop.add.hold: &cHold an item &7to add!
    164.    cmd.shop.add.priceerror: &7You've specified &cinvalid prices&7!
    165.    cmd.shop.add.noslot: &7Select a shop slot first!
    166.    # %{_s::1} parsed as number + 1% = the slot number
    167.    # {_s::2} = the name of the shop
    168.    # %arg 2 parsed as number% = buy price
    169.    # %arg 3 parsed as number% = sell price
    170.   cmd.shop.add.success: &7You've edited the slot &a%{_s::1} parsed as number + 1% &7of the shop &a%{_s::2}% &7with &a%type of tool% &7with the prices &a%arg 2 parsed as number% (buy) &7and &a%arg 3 parsed as number% (sell)&7.
    171.  
    172.    cmd.shop.delete.notfound: &7This shop &cdoes not exist&7!
    173.    # %arg 2% = the shop that has been deleted
    174.    cmd.shop.delete.success: &7You removed the shop &a%arg 2% permanently&7.
    175.  
    176.    cmd.shop.setsize.notfound: &7The shop &c%arg 1% &7does not exist!
    177.    # %arg 3% = the size number
    178.    cmd.shop.setsize.notnumber: &c%arg 3% &7is not a number!
    179.    cmd.shop.setsize.number: &7The number must be between &c1 &7and &c6&7!
    180.    # %arg 2% = the shop name
    181.    # %arg 3 parsed as number% the new shop size
    182.   cmd.shop.setsize.success: &7You've changed the size of the shop &a%arg 2% &7to &a%arg 3 parsed as number%&7!
    183.  
    184.    cmd.shop.cmd.hold: &cHold an item &7to add!
    185.    cmd.shop.cmd.noslot: &7Select a shop slot first!
    186.    # %{_s::1} parsed as number + 1% = the slot that has been edited
    187.    # {_s::2} = the shop name
    188.    # {_cmd} = the command added
    189.   cmd.shop.cmd.success: &7You've edited the slot &a%{_s::1} parsed as number + 1% &7of the shop &a%{_s::2}% &7to run the command &a%{_cmd}%&7.
    190.  
    191.    cmd.shop.clone.usage.1: &fUsage: &c/shop clone [shop] [new shop] [%%buy] [%%sell].
    192.   cmd.shop.clone.usage.2: &fNote: &7the percentage means how bigger or smaller the prices will be compared to the cloned shop. 100 = same price, 50 = half the price.
    193.    cmd.shop.clone.notfound: &7The shop &c%arg 1% &7does not exist!
    194.    cmd.shop.clone.notnumber: &c%arg 4% &7or &c%arg 5% &7are not numbers!
    195.    # %arg 4% = the first percentage (buy)
    196.    # %arg 5% = the second percentage (sell)
    197.    cmd.shop.clone.number: &c%arg 4% &7and &c%arg 5% &7must be between 0 and 1000 (%%).
    198.    cmd.shop.clone.notinregex: &3ⓉⓅ &7You can only use &cletters &7and &anumbers&7.
    199.    # %arg 2% = the shop name
    200.    # %arg 3% = the cloned shop name
    201.    # %arg 4 parsed as number% = the buy value modifier in %
    202.    # %arg 5 parsed as number% = the sell value modifier in %
    203.   cmd.shop.clone.success: &7You've cloned the shop &a%arg 2% &7to &a%arg 3% &7with price modifier of &a%arg 4 parsed as number%%% &7on pucharse and &a%arg 5 parsed as number%%% &7on sale.
    204.  
    205.    cmd.shop.deleteall.success: &cWarning: &7all shops have been deleted.
    206.  
    207.    # Here you can create a special help command.
    208.    # To add new lines, use %nl%
    209.    # DO NOT ADD NEW LINES BY USING NUMBERS, IT WON'T WORK!
    210.    cmd.shop.usage: &7Incorrect command usage.
    211.    # -------------------------------------------------------------------------------
    212.  


    Images
    GIF showing how easy it is to create a shop

    [​IMG]

    Editing a shop

    [​IMG]

    Shop's main GUI
    [​IMG]

    Shop's extra GUI with quantities (middle button to open).
    [​IMG]


    Addons required
    skQuery - general functionality, Lime's fork recommended.
    Skellett - actionbars *OPTIONAL. You can use the version which uses chat messages.
    TuSKe - GUI functionality.

    Commands & Permissions

    /shop create [size] [name] | ic.admin
    Creates a shop with determined size.
    /shop edit [shop] | ic.admin
    Edits a shop you created before.
    /shop open [shop] | ic.shop.[shopname]
    Opens a determined shop to you. If combined with CommandNPC, you can create shop villagers.
    /shop add [buy price] [sell price] | ic.admin
    Adds an item to the shop on the slot you had clicked.
    /shop clone [shop] [new shop] [%buy] [%sell] | ic.admin
    Clones a shop with determined price modifier. For example, to create a VIP shop with half of the normal prices, use 50 50.
    /shop [del|remove|delete] [shop] | ic.admin
    Deletes determined shop.
    /shop [setsize|sizeset] [shop] | ic.admin
    Changes the size of a shop. If you remove the row of an item, it simply won't show.

    /shop cmd [command] | ic.admin
    Adds an item that runs a command. By doing this, you can create unlimited linked shops, return buttons and much more.
    Example:
    /shop cmd shop open farmer2 - page 2
    /shop cmd shop open farmer3 - page 3
    /shop cmd shop open miner - goes to another shop
    /shop cmd yourcustomcommand
    /rename [name] | e.rename
    Renames the item you're holding. If a name is not set, your item will have a blank name (useful for decorative items in GUIs)
    /setlore [line] [text] | e.setlore
    Changes a specific line of the lore of the item you're holding.

    Terms of use
    1. All pucharses are final. Once given the access to this file, you cannot ask for a refund.
    2. Reselling is strictly prohibited.
    3. You're not allowed to redistribute this script resource.
    4. You're free to edit the code, but not to remove the credits (as they're only in the file).
    5. It's my responsibility to fix any bugs reported by the user.
    6. I don't have to do any huge functionality changes for free. Small ones are acceptable.
    7. You may use the functions inside this script, but they cannot be moved to your own script or be redistributed.
    8. Read the entire page before buying. It's not my fault if you expect the resource to do something it doesn't.

    Support

    If you have any issues with the resource, contact me by:
    Discord: EWS#5810 (preferable)
    Email: [email protected]com

    And please, contact me before making a bad review. It doesn't hurt (I think) and it's for free.
  • About Us

    Our community has been around for many years and pride ourselves on offering unbiased, critical discussion among people of all different backgrounds. We are working every day to make sure our community is one of the best.
  • Support skUnity

    The staff team works very hard to make sure the community is running its best. This means constantly performing upgrades to systems and other features. This does cost a bit of money to keep doing. Donating to skUnity would allow the server to keep running smoothly for years to come!

    Support Us!
  • Join Our Discord

    Discord is an all-in-one voice and text chat for gamers that’s free, secure, and works on both your desktop and phone.