Textile - Texture Pack Handler - No Spout Required

This is a plugin that allows the user to have multiple texture packs per server as well as created a web server to download display and send texture packs directly from the server.
Textile on Github


/textile <List/Set/Preview/Revert/Download>
Example: /textile Set {World/'default'} {FileName.zip}
Example: /textile Preview {URL}
Example: /textile Revert
Example: /textile Download {URL}
node: textile.command


    description: Allows user access to commands
      textile.command.download: true
      textile.command.preview: true
      textile.command.set: true
      textile.command.list: true
    description: Allows user to download a texture pack to the server
    description: Allows user to preview packages and revert to previous
    description: Allows user to make changes to world textures
    description: Allows user to list all available texture packs


Put the jar into your plugins folder.
Load up your server.
Put all associated Texture packs into the Textile Folder.
Use commands ingame or Edit the config.


Uploading Functional Version

Added Commands
Added Command permissions
Added Download ability
Added Preview ability

Workaround for already packages in use.
Fix for configuration changes
Use urls for non hosted texture packs.


Adding Commands to set Texture pack per world instead of having to setup config.
Adding Permissions to determine who's allowed to download texture packs.
Create a default web page to display used texture packs and download links.
Allow users to download texture packs via Curse.
Allow users to download texture packs via Url from command
Allow users to sample texture packs before downloading them.


Example: config.yml

HttpServPort: 2569
#All files must be in zip format.#
#Default will be the the first texture downloaded#
#Recommend matching your first spawn world and default#
  PackName: http://dev.bukkit.org/media/files/614/196/sometexture.zip
#Just put the filename example texturepack for texturepack.zip#
  PackName: http://dev.bukkit.org/media/files/614/196/sometexture.zip
  PackName: TexturePack
  PackName: SomethingElse

Example location for file downloads.



By all means if some one wants to make a better video. Please do.

Plugin Will Break Every Bukkit/MC update.

Quote from Deathmarine:

Warning: With the way that bukkit has changed this plugin will be broken on every minecraft/bukkit update. Considering it uses either a nms or craftbukkit hook at least once.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of domorecrank domorecrank Feb 17, 2013 at 01:14 UTC - 0 likes

    @B4krawi Might have something to do with the notice immediately above the comments section...


    If anyone else is feeling impatient, here's a copy of the jar built against 1.4.7_R1.1 and JavaSE 1.7


    Two things to note:

    1. The source on GitHub is out of date! This is NOT that code.
    2. I haven't tested, nor will I offer support for this build. I simply corrected the CraftServer reference and recompiled.
    Last edited Feb 17, 2013 by domorecrank
  • Avatar of B4krawi B4krawi Feb 06, 2013 at 14:59 UTC - 0 likes

    This Doesn't seem to work with 1.4.7... any reason why?

  • Avatar of donoh1 donoh1 Jan 24, 2013 at 02:06 UTC - 0 likes

    This is the best plugin that handles multi-world support. Unfortunately it doesn't appear to work with the latest versions (as you note above regarding the nms hook), any chance (or interest) in making a new build that will work for 1.4.6-R0.3 or even 1.4.7? (doesn't 1.4.7 drop the nms hooks?!) I hope you stick with it, you have a great product here!

  • Avatar of mattmess1221 mattmess1221 Jan 03, 2013 at 01:16 UTC - 0 likes

    @jtjj222: Go

    I support this. These two plugins would go great together.

  • Avatar of jtjj222 jtjj222 Dec 29, 2012 at 00:37 UTC - 0 likes

    @Death_marine Your plugin and mine pretty much do the same thing, except your's also hosts the texture packs. I love the idea of hosting the texture packs, and I want to add it to my plugin, but I wouldn't feel right stealing such a great idea. I think that, for the sake of our users, we should combine our projects together. Pm me if you are interested.

    Also, bukkit's adding a method to change texture packs. Hopefully that should fix the forwards-compatibility issues you are having :D (I miss the days when changing the texture pack involved packets and nms code, and there was no documentation whatsoever, so it was such a great accomplishment to dig through the source code and figure out how to change the texture packs. Now it's just too easy.)

    Great plugin!

  • Avatar of Death_marine Death_marine Dec 23, 2012 at 01:30 UTC - 0 likes

    @bagheadinc: Go

    Got one for 1.4.6 but not for 1.4.5 because of the new methods.


    Ultrabans | Ultrabans Lite | FishChecker | PingMotd | Islands | Textile
    DiabloDrops | AutoDropParty | Identify | MineTeller | BukkitSpeak
    And Some Others...


  • Avatar of bagheadinc bagheadinc Dec 23, 2012 at 01:04 UTC - 0 likes

    Any chance for a 1.4.5-R1.0 or 1.4.6 update? :)

  • Avatar of mattmess1221 mattmess1221 Dec 19, 2012 at 08:22 UTC - 1 like

    The only thing this is missing is implementation of WorldGuard regions. Go into one area and the texture pack changes. Go to another, and it changes back.

  • Avatar of bagheadinc bagheadinc Sep 08, 2012 at 16:55 UTC - 0 likes


    I'm loving this plugin and it's nearly perfect. The only issue I see is that it won't set the proper TP on login.

    Basically I'd like to to set the player to the creative world's TP if they login and are in the creative world, survival TP if they login the survival world, etc.

    Currently it will also set it to the Default TP upon login. If a Default TP isn't set, it won't change the TP on login.

    It's not the end of the world and I'm thoroughly happy with the plugin even if this can't be done, but I figure it's worth asking in case you do have a solution :)

  • Avatar of Death_marine Death_marine Sep 02, 2012 at 02:35 UTC - 0 likes

    @HaoSs: Go

    Nope, this is a feature for 1.3.


Date created
Aug 22, 2012
Last update
Dec 23, 2012
Development stage
  • enUS
Attribution-NonCommercial-ShareAlike 3.0 Unported
Curse link
Recent files