Factoid official thread

What is Factoid?

An other cuboid protection plugin? Yes! Factoid is one of the must recent protection plugin! The goal of this plugin is to be easy to use, highly configurable and permit to configure every permissions and flags per lands, worlds or globally in the server. We are planing to implement an optional faction system. Factoid is already supporting UUIDs.

Lands and Grief protection

  • Cuboid land protection.
  • Land indexation and tree system in memory to reduce CPU usage.
  • Two possible selections system : WorldEdit and visual.
  • A lot of possible configurations (flags and permissions) for security, anti-grief, explosions and mobs, etc.
  • Kick and ban from a land and be notified for enter/exit.
  • An easy to use and complete land modification system.
  • Collision detection and approval system.
  • Parents and children for land system. The parent is auto detected when you create a land.
  • Priority system to avoid collision.
  • You can set specifically where explosions (TNT, creepers, etc.) can make damage.
  • Economy: You can sell, buy and rent a land with a sign.

Here is what is configurable (Permissions, Flags, Player containers, …): http://dev.bukkit.org/bukkit-plugins/factoid/pages/parameters/

Future developments (net yet implemented)

  • Factions (sieges, etc.).
  • Web land configuration.

Optional add ons

  • FactoidInventory: Per world/land inventory system. Can create a default inventory and can restore an inventory before the death.
  • FactoidFlyCreative: Allow players to have fly or creative in a specific land or world.

About API

It is possible to make an add on for Factoid, but my suggestion is to make a comon API for every cuboid/region/protection plugins.

My region plugin will not be converted to Sponge

If I had multiple requests, I will make a conversion system.

1 Like

I’ll keep this in mind…

I am looking forward to trying this out. Any reason as to why you’re using SVN vs GitHub?

It is only because it was first planned to be a closed source project, but I have a plan to move it to GITHub when it will be converted to Sponge.

Update: Factoid in now moved on GitHub: Tabinol (Michel Blanchet) · GitHub
The FactoidAPI is now separate from the main project.

Looks promising! :smiley:

What sets this apart from WorldGuard (Apart from a presumably soft-dependency on WorldEdit, not many servers don’t have that at any rate)? Most of the features you mention above are part of WG already, and it’s been confirmed that SK plans to port it to Sponge. (Legitimate curiosity, not trying to put your project down)

My goal is not to blast WorldGuard or any others plugins. WorldGuard has some features not in Factoid and Factoid has features not in WorldGuard. What I think, it is good for a server owner to have the choice between more than one plugin.

I can show you some features not in WorldGuard (but probably I am wrong because I did not try the last version)

  • Collisions detection can be activated or deactivated
  • An approval system for players who have more then the maximum number of lands, collisions, etc.
  • Economy without any addon: Deposit money in a land, withdraw, buy and rent a land
  • More configurations can be set per world or land: explosions, mobs spawn, mobs damages
  • No enter, ban, kick from a land and know who is on a land now, notify the owner when a player enters or exits a land.
  • Lands indexed and shorted in memory: Lag reduced on land search

WorldGuard features not in Factoid:

  • MySQL support (Factoid support only flat files for now, MySQL is planed)
  • Support for polygon regions (Factoid support only Cuboid)

Not sure what you mean by those. What sort of collisions do you mean?

This might can be configurable. Most servers tend to have an econ plugin and vault with Bukkit, so having an independent currently for a specific plugin may be confusing (especially for players). Maybe have it optionally hook to Vault (or if you’re developing only for Sponge, whatever replaces Vault if it isn’t ported)

This isn’t entirely clear either, but I’m assuming you mean there are global flags of some sort? WorldGuard has a per-world region called ‘__global__’ that flags can be set on, albeit I suppose you’d have different flags.

That may need some debate. At some point, especially on large server, if you just cache all Lands, even shortened, I imagine it could consume a good bit of memory. There may not be a decent way around that with a better resource impact, but it may be worth looking into. Loading Lands as chunks load may be a way, but I’ve read somewhere that listening to the chunk load event may not be the best if you’re doing more than a simple check or calculation.

A collision is when a land overlap an other land. And like WorldGuard, there is a priority system to determine what land is the first detected and also Parents/Children system. But there is an approval system if the land of a player overlap an other land.

Sorry, English is not my first language. Of course, on Bukkit, Factoid is dependent of Vault and connect to economy system. Economy with land is included in main .jar, but I am not sure in WorldGuard, not when I tried this.

[quote=“OffLuffy, post:10, topic:3156”]This isn’t entirely clear either, but I’m assuming you mean there are global flags of some sort? WorldGuard has a per-world region called ‘__global__’ that flags can be set on, albeit I suppose you’d have different flags.
[/quote]

I give you an example: In WorldGuard, you can set only globally «block-creeper-block-damage» in config.yml, creepers making damage to players but not to blocks. Of course, you can set in a region «creeper-explosion», but it is only for if the creeper explode or not. In Factoid, both can be changed globally, per world or per land (flags: CREEPER_EXPLOSION and CREEPER_DAMAGE)

[quote=“OffLuffy, post:10, topic:3156”]That may need some debate. At some point, especially on large server, if you just cache all Lands, even shortened, I imagine it could consume a good bit of memory. There may not be a decent way around that with a better resource impact, but it may be worth looking into. Loading Lands as chunks load may be a way, but I’ve read somewhere that listening to the chunk load event may not be the best if you’re doing more than a simple check or calculation.
[/quote]

I am talking about lands (Cuboid) or Regions if you prefer, not about chunks or any Minecraft blocks. Factoid lands is just one or more cuboid areas with two point in a specific world (x1, y1, z1), (x2, y2, z2). If cuboids are sorted in memory, you can chose the direction of your search. if you are for example at (-1223, 65, -1456) and the center of the world is (0x, 0z), it is preferable to start your search from the lower cuboid in X or Z, and you can stop to search when you have reached a cuboid greater than this point. But if cuboids are not sorted, you have to check every cuboids in the world from the first to the last, and then compare what is the highest priority, than find the children if there is one. Has I know, Factoid only use sort and index system to store lands/cuboids.

Time gain is only theoretical. I have no benchmark test to prove it, and I can not do it for now but it can be interesting to know.

1 Like

Factoid convention to Sponge is on the way…