Preface
Due to my hands starting to fail me my ability to code is getting harder and harder. I was starting to study up to try and code the mod myself (former C\ASM\C++ programmer) but my hands are just getting too bad at this point, especially for Java which can be pretty type-happy. Rather than let a great idea die. I propose the following and hope that a modder see merit in it to bring it into reality. Thanks to my friends helping type out most of this.
Summary
The Tribute mod is a mod born out of the idea of providing competitive gameplay using many of the industry mods such as Buildcraft, Repower, and Industrial Craft. The idea is that a king every 24 hours requests tribute of teams in three tiers. By placing items in a specific chest the king purchases the content. If it is a tribute item, the king pays twice the normal value and awards a holding. (This was originally conceived as a Bukkit mod using an economy plug-in so the payment is non-item currency is assumed.) But with forge progressing as well as it is, maybe the forge crowd wants to take a shot at this. I have played this manually (myself as the admin being the king) and found it to be a blast. I will explain at the end how to play this manually.
By successfully completing a tribute a player’s holding level increases by 1,2, or 4 chunks depending on which tier they completed. Players can purchase a chunk and using a protection mod plugin secure it, up to their current holding. The cost increases 25% (default) each additional chunk. This creates a natural practical limit since we assume players ability to extract resources outside of their protected territory is limited.
The tribute requested is proportional to their holdings. The more holding the more tribute is required. So if the king asks for Ruby Swords it may be that it is .5 swords per holding (chunk) so someone with 10 chunks would only need to provide 5 swords, but someone with 100 chunks may need to provide 50 swords.
If a player fails to meet a quota, he loses a holding for each failed quota (regardless of tier). If a player has more chunks claimed then he has holdings, another player can steal chunks from that player until their chunks = holdings. These chunks should be flagged as contested. (I am assuming a dynmap plugin that would show a team with chunks > holding in a highlighted color)
If a player’s holdings is reduced to 0, they lose and must start over from scratch. It is assumed that players\teams on a server like this are randomly spawned X distance from any other player’s holding.
In addition a leader board is available (I was thinking a web page as well as in-game). It would be assumed that servers like this would run in a league fashion and periodically reset. (annually) or given mods like Mystcraft, could run indefinitely since the added dimensions could provide limitless additional realms to exploit.
Team play should be supported (by default a team of a single player, but N+ players shouldn’t be an issue).
Originally conceived as a Bukkit mod, this mod and gameplay style requires several management mods and assumptions
· An economy plugin of some sort
· Territory control (originally inspired by the Factions Mod)
· Players are not allowed to build in the default world except in territory they control
o It is assumed a mod like Mystcraft or Multiworld mods are used any players are free to build in in those worlds without restriction (and the nether). They should not be able to claim territory in other dimensions.
o However, Players could be free to build in the default world and open pvp\sabotage\theft allowed in unclaimed territory but I have found that your world gets chewed up pretty bad pretty quick in tests (on my server we played this manually and the admin (myself) provided each team with an Enderchest linked to the admin base (inacessable dimension) that I manually tallied. Explanation at the end.)
The idea is to provide objectives to industrial players in a passive-aggressive game play style that is, best summarized as “indirect PVP” which limited direct PVP. It channels player creativity in being able to hand in some cases absurd tribute requests (one week I had a player which had 500 chunks with a tribute of 5000 ruby swords. Not only did he complete the tribute he was able to make 50,000 of them). Some player made programmable factories.
Gameplay Notes
Two natural upper limits emerge. One is the limit of holdings players have. Since the tributes are scaled based on their holding count an impractical upper limit emerges where they simply cannot meet the demands. The second is since the cost of purchasing a chunk increases by 25% the compounding costs also creates what we called the soft limit (where the holdings were the hard limit.)
Second is with the advent of multiworld and mods like Mystcraft huge battles can emerge as people pillage those dimensions for raw materials. One op on the server had a 10 man team rush out, drop 20 Buildcraft quarries with fuel and devoure a map all the while fighting off opposition as their quarries dug in while they were trying to meet, if memory serves me right, a Red Matter Block request from EE. Loads of fun to watch the map as the teams (we had 5 going) battle it out.
Technical Requirements (Config and ingame data objects are in Bold with default value)
Objects
A special chest that is assigned to a team called a Tribute Chest. That’s it. Nothing else should be needed.
This chest should ever TributeCheckInterval=5 sell the contents to the king. On this event the tributeItems.conf file should be checked (perhaps stored in a sqllite db at server startup) as well the currentTributeTier1, currentTributeTier2,currentTributeTier3 if the item is not a tribute item it is deleted and the team should be credited based on the value listed in the tributeItems.conf file.
Example tributeItems.conf**:
Item Name,Object or block ID, tier, coefficient, value
Diamond, 264, 1, .5, 100
Diamond Sword, 267, 2, .75, 310
Ender Chest, ???, 3, .25, 1000
** Note ideally we would not want to have to provide a block ID but rather somehow just use the name since many servers may have different block and Item IDS, if that is possible, the Object or Block ID column could be dropped. Maybe built at server start.
This chest should be attached to a team and players belonging to a team. A great option would be to let players issue a command /CreateTeam or /JoinTeam.
Commands
/CreateTeam “XXXX”: Create a team title XXXXXX (allowing spaces up to 20 characters)
/JoinTeam “XXXX”: Attempt to join a team. If a team OpenInvite is set to false then a pending invite is added to the team
· /Team <command> <parameters>
o Invite
§ Invite a player to your team
o Approve
§ Accept an invite from a team or approve a pending join request
o Reject
§ Reject a pending invite from a team or reject a pending join request
o Kick
§ Remove someone from your team
o OpenInvite
§ True: Anyone can join
§ False: Players must be invited
o Claim
§ Claim a chunk for your team. If you have no currently claimed chunks it claims the chunk at your location. If you have existing chunks claimed is checks to make sure there is an existing claimed chunk.
· If the chunk you are attempting to claim is currently owned by someone else, then is checks the following in order:
o A: The owner of the chunk you are attempting to claim has a chunksClaimed < holdings
o B: The chunk is bordering a chunk you currently have claimed
o Surrender
§ Wipes your team’s claims and teleports you to a random location minDistance away from any existing players if randomSpawnLocation is set to true.
o Leave
§ Leave your current team. If there are no members to a team the team is disbanded.
o CreateTributeChest
§ After issuing the command clicking a standard wooden chest converts the chest into a tribute chest assigned to your team.
Assumed config option summary with defaults randomSpawnLocation = False // Where do players initially spawn. For single player teams this should be true. For multi-player teams this should be false. startingHoldings=10 // Initial holdings for a new team. minDistance = 20 // If randomSpawnLocation is set to true then this is the minimum number of chunks that need to be unclaimed between a random spawn location and the nearest claimed territory tributeCheckInterval = 5 //How often should chests should be checked in minutes before the contents are sold tributeInterval = 24 // How often should the king change the tribute
// Be careful with the following. Since failing a quota costs you a holding, there should usually be at least as many tier 1 (easy) items as there are tier 2 and 3 combined so at least new players who can only manage tier 1 items can get a start and grow. I suggest twice the number of 2 and 3 tributes combined. numberOfTier1Tributes = 6 // How many tier 1 items should the king ask for. Usually raw materials with the exception of diamonds and other rare minerals. numberOfTier2Tributes = 2 // How many tier 2 items, basic finished items and mod items (gears, wands, desks, books, etc.) numberOfTier3Tributes = 1 // How many tier 3 items, the big expensive items (enderchests, engines, quarries, sorters, etc.)
Internal Data Objects
· Team data (members, permissions on chunks, etc)
· Current Tribute data (the active tributes)
Persistent Data
Team Holding Value (this is not only how many chunks a team may have but also the coefficient of the purchase price of a chunk)
· Team Members
· Current Team Money Balance
How to play manually
First the admin sets up his or her’s base of operation and gets a set of ender-chests for each team along with some storage chests. I used Redpower filters and pumps to pump items automatically from those chests into a series of storage chests. Using Factions mod I adjusted each teams power levels to match their holdings value. Since doing this manually I did this weekly rather than every 24 hours for the tributes.
The tributes then were to fill a chest, per chunk, each week with the tribute items (I set the MOTD for the tributes on Monday.)
I then checked the chests Monday and paid the teams accordingly. (I didn’t allow non-tribute items to be sold to the king.) The tribute items were loaded by a filter pumping out of the ender-chest. So if I asked for diamonds I put a diamond in the filter so if players tried cramming usless crap into the chest it didn't get pumped out for example.
That’s it. It wasn't hard but it required a fair bit of maintenance. I strong feel this is a great mod options but again, my hands and time won’t let me pursue this. My hope, is someone feels this is a worthy mod concept and develops it into something everyone can enjoy.
So is this already a bukkit mod, but you are looking into making it a forge mod? Or was the bukkit mod discontinued and you would like to get the bukkit mod up and going again?
So is this already a bukkit mod, but you are looking into making it a forge mod? Or was the bukkit mod discontinued and you would like to get the bukkit mod up and going again?
Neither. I was going to make it a bukkit mod but I simply cannot handle they amount of typing anymore without starting to take Oxycontin or other heavy pain killers.
Chest is working but populating 3000+ items isn't very efficient via a config file. Might have to put meta-data into mysql backend for the scoreboard. On ice till we have forge worldguard+perms+economy since I have nothing to send the sell data to and no worldguard or perms to check against.
A Proposal
Preface
Due to my hands starting to fail me my ability to code is getting harder and harder. I was starting to study up to try and code the mod myself (former C\ASM\C++ programmer) but my hands are just getting too bad at this point, especially for Java which can be pretty type-happy. Rather than let a great idea die. I propose the following and hope that a modder see merit in it to bring it into reality. Thanks to my friends helping type out most of this.
Summary
The Tribute mod is a mod born out of the idea of providing competitive gameplay using many of the industry mods such as Buildcraft, Repower, and Industrial Craft. The idea is that a king every 24 hours requests tribute of teams in three tiers. By placing items in a specific chest the king purchases the content. If it is a tribute item, the king pays twice the normal value and awards a holding. (This was originally conceived as a Bukkit mod using an economy plug-in so the payment is non-item currency is assumed.) But with forge progressing as well as it is, maybe the forge crowd wants to take a shot at this. I have played this manually (myself as the admin being the king) and found it to be a blast. I will explain at the end how to play this manually.
By successfully completing a tribute a player’s holding level increases by 1,2, or 4 chunks depending on which tier they completed. Players can purchase a chunk and using a protection mod plugin secure it, up to their current holding. The cost increases 25% (default) each additional chunk. This creates a natural practical limit since we assume players ability to extract resources outside of their protected territory is limited.
The tribute requested is proportional to their holdings. The more holding the more tribute is required. So if the king asks for Ruby Swords it may be that it is .5 swords per holding (chunk) so someone with 10 chunks would only need to provide 5 swords, but someone with 100 chunks may need to provide 50 swords.
If a player fails to meet a quota, he loses a holding for each failed quota (regardless of tier). If a player has more chunks claimed then he has holdings, another player can steal chunks from that player until their chunks = holdings. These chunks should be flagged as contested. (I am assuming a dynmap plugin that would show a team with chunks > holding in a highlighted color)
If a player’s holdings is reduced to 0, they lose and must start over from scratch. It is assumed that players\teams on a server like this are randomly spawned X distance from any other player’s holding.
In addition a leader board is available (I was thinking a web page as well as in-game). It would be assumed that servers like this would run in a league fashion and periodically reset. (annually) or given mods like Mystcraft, could run indefinitely since the added dimensions could provide limitless additional realms to exploit.
Team play should be supported (by default a team of a single player, but N+ players shouldn’t be an issue).
Originally conceived as a Bukkit mod, this mod and gameplay style requires several management mods and assumptions
· An economy plugin of some sort
· Territory control (originally inspired by the Factions Mod)
· Players are not allowed to build in the default world except in territory they control
The idea is to provide objectives to industrial players in a passive-aggressive game play style that is, best summarized as “indirect PVP” which limited direct PVP. It channels player creativity in being able to hand in some cases absurd tribute requests (one week I had a player which had 500 chunks with a tribute of 5000 ruby swords. Not only did he complete the tribute he was able to make 50,000 of them). Some player made programmable factories.
Gameplay Notes
Two natural upper limits emerge. One is the limit of holdings players have. Since the tributes are scaled based on their holding count an impractical upper limit emerges where they simply cannot meet the demands. The second is since the cost of purchasing a chunk increases by 25% the compounding costs also creates what we called the soft limit (where the holdings were the hard limit.)
Second is with the advent of multiworld and mods like Mystcraft huge battles can emerge as people pillage those dimensions for raw materials. One op on the server had a 10 man team rush out, drop 20 Buildcraft quarries with fuel and devoure a map all the while fighting off opposition as their quarries dug in while they were trying to meet, if memory serves me right, a Red Matter Block request from EE. Loads of fun to watch the map as the teams (we had 5 going) battle it out.
Technical Requirements (Config and ingame data objects are in Bold with default value)
Objects
A special chest that is assigned to a team called a Tribute Chest. That’s it. Nothing else should be needed.
This chest should ever TributeCheckInterval=5 sell the contents to the king. On this event the tributeItems.conf file should be checked (perhaps stored in a sqllite db at server startup) as well the currentTributeTier1, currentTributeTier2,currentTributeTier3 if the item is not a tribute item it is deleted and the team should be credited based on the value listed in the tributeItems.conf file.
Example tributeItems.conf**:
Item Name,Object or block ID, tier, coefficient, value
Diamond, 264, 1, .5, 100
Diamond Sword, 267, 2, .75, 310
Ender Chest, ???, 3, .25, 1000
** Note ideally we would not want to have to provide a block ID but rather somehow just use the name since many servers may have different block and Item IDS, if that is possible, the Object or Block ID column could be dropped. Maybe built at server start.
This chest should be attached to a team and players belonging to a team. A great option would be to let players issue a command /CreateTeam or /JoinTeam.
Commands
/CreateTeam “XXXX”: Create a team title XXXXXX (allowing spaces up to 20 characters)
/JoinTeam “XXXX”: Attempt to join a team. If a team OpenInvite is set to false then a pending invite is added to the team
· /Team <command> <parameters>
Assumed config option summary with defaults
randomSpawnLocation = False // Where do players initially spawn. For single player teams this should be true. For multi-player teams this should be false.
startingHoldings=10 // Initial holdings for a new team.
minDistance = 20 // If randomSpawnLocation is set to true then this is the minimum number of chunks that need to be unclaimed between a random spawn location and the nearest claimed territory
tributeCheckInterval = 5 //How often should chests should be checked in minutes before the contents are sold
tributeInterval = 24 // How often should the king change the tribute
// Be careful with the following. Since failing a quota costs you a holding, there should usually be at least as many tier 1 (easy) items as there are tier 2 and 3 combined so at least new players who can only manage tier 1 items can get a start and grow. I suggest twice the number of 2 and 3 tributes combined.
numberOfTier1Tributes = 6 // How many tier 1 items should the king ask for. Usually raw materials with the exception of diamonds and other rare minerals.
numberOfTier2Tributes = 2 // How many tier 2 items, basic finished items and mod items (gears, wands, desks, books, etc.)
numberOfTier3Tributes = 1 // How many tier 3 items, the big expensive items (enderchests, engines, quarries, sorters, etc.)
Internal Data Objects
· Team data (members, permissions on chunks, etc)
· Current Tribute data (the active tributes)
Persistent Data
Team Holding Value (this is not only how many chunks a team may have but also the coefficient of the purchase price of a chunk)
· Team Members
· Current Team Money Balance
How to play manually
First the admin sets up his or her’s base of operation and gets a set of ender-chests for each team along with some storage chests. I used Redpower filters and pumps to pump items automatically from those chests into a series of storage chests. Using Factions mod I adjusted each teams power levels to match their holdings value. Since doing this manually I did this weekly rather than every 24 hours for the tributes.
The tributes then were to fill a chest, per chunk, each week with the tribute items (I set the MOTD for the tributes on Monday.)
I then checked the chests Monday and paid the teams accordingly. (I didn’t allow non-tribute items to be sold to the king.) The tribute items were loaded by a filter pumping out of the ender-chest. So if I asked for diamonds I put a diamond in the filter so if players tried cramming usless crap into the chest it didn't get pumped out for example.
That’s it. It wasn't hard but it required a fair bit of maintenance. I strong feel this is a great mod options but again, my hands and time won’t let me pursue this. My hope, is someone feels this is a worthy mod concept and develops it into something everyone can enjoy.
Idgarad
Neither. I was going to make it a bukkit mod but I simply cannot handle they amount of typing anymore without starting to take Oxycontin or other heavy pain killers.