Posted September 10, 2018 Hi, I want to setup my server to have no upkeep, I've set the free tiles to 441 tiles or 10x10x10x10 using the upkeepcost mod and want to make them pay for guards and new tiles. Problem is when they make a default (5x5x5x5 with no guards) it puts 13s 20c into the coffers so they can buy guards until the coffers are empty and because deed upkeep is turned off they cant put any more money into the settlement. If they resize the deed, no money is taken from the coffers nor is it charging for any new tiles over the initial 441 granted in the config. If they make a deed at 10x10x10x10 no money is put into the coffers and again as upkeep is not enabled they can not purchase any guards at all. They can resize the deed without paying for any tiles. Share this post Link to post Share on other sites
Posted September 10, 2018 doesnt the standard server options allow you to select no upkeep costs and whether or not guards need pay? Share this post Link to post Share on other sites
Posted September 10, 2018 yes you can have no upkeep, that's not what problem is. all I want is to give players 441 tiles free and a guard or two if possible and then they must pay for new tiles and guards after that with no upkeep. Why is that so hard lol Share this post Link to post Share on other sites
Posted September 10, 2018 8 hours ago, Darkness1990 said: all I want is to give players 441 tiles free and a guard or two if possible and then they must pay for new tiles and guards after that with no upkeep. Why is that so hard lol It may be easier for you to give them the money to pay for those tiles/guards after finding out how much they will cost initially if you don't want money already in the coffers by default. Otherwise you may need to look into editing the actual database to change the default settlement sizes/guards. With upkeep disabled I don't know of a way to make them pay to resize so you may want to turn the upkeep back on so they can add money into their deeds. Share this post Link to post Share on other sites
Posted September 11, 2018 (edited) Yeah I've thought about doing that but not sure about how to put money into the coffers when they first make a deed. Maybe I could use script runner mod but I have no idea how to write something like that. also doing this players could abuse the system and create alts make new deeds and refund the deed, Edited September 11, 2018 by Darkness1990 Share this post Link to post Share on other sites
Posted September 22, 2018 (edited) VillageFoundationQuestion file Have a moder altar this file and do something like this in this method. This will for example not allow the default 5 min tiles in any direction and cant go over 50 tiles or what ever you set it to, One of the moders can make a mode with a properties file to set these at what ever with a properties file just need to get a moder to do it for you or you can alter this file your self with something like intelij. //Minimize how much land owned boolean parseVillageFoundationQuestion1() { String key = "back"; String val = this.getAnswer().getProperty(key); if (val != null && val.equals("true")) { this.createIntro(); return false; } else { this.error = ""; this.selectedWest = 5; this.selectedEast = 5; this.selectedNorth = 5; this.selectedSouth = 5; key = "sizeW"; val = this.getAnswer().getProperty(key); if (val != null) { try { this.selectedWest = Integer.parseInt(val); //|| this.selectedWest > 50"added code" if (this.selectedWest < 5 || this.selectedWest > 50) { this.error = "The minimum size is 5 max 50. ";//The minimum size is 5. this.selectedWest = 5; } } catch (NumberFormatException var15) { this.error = this.error + "* Failed to parse the desired size of " + val + " to a valid number. "; } } key = "sizeE"; val = this.getAnswer().getProperty(key); if (val != null) { try { this.selectedEast = Integer.parseInt(val); //|| this.selectedEast > 50"added code" if (this.selectedEast < 5 || this.selectedEast > 50) { this.error = "The minimum size is 5 max 50. ";//The minimum size is 5. this.selectedEast = 5; } } catch (NumberFormatException var14) { this.error = this.error + "* Failed to parse the desired size of " + val + " to a valid number. "; } } key = "sizeN"; val = this.getAnswer().getProperty(key); if (val != null) { try { this.selectedNorth = Integer.parseInt(val); //|| this.selectedNorth > 50"added code" if (this.selectedNorth < 5 || this.selectedNorth > 50) { this.error = "The minimum size is 5 max 50. ";//The minimum size is 5. this.selectedNorth = 5; } } catch (NumberFormatException var13) { this.error = this.error + "Failed to parse the desired size of " + val + " to a valid number. "; } } key = "sizeS"; val = this.getAnswer().getProperty(key); if (val != null) { try { this.selectedSouth = Integer.parseInt(val); //|| this.selectedSouth > 50 "added code" if (this.selectedSouth < 5 || this.selectedSouth > 50) { this.error = "The minimum size is 5 max 50. ";//The minimum size is 5. this.selectedSouth = 5; } } catch (NumberFormatException var12) { this.error = this.error + "Failed to parse the desired size of " + val + " to a valid number. "; } } this.diameterX = this.selectedWest + this.selectedEast + 1; this.diameterY = this.selectedNorth + this.selectedSouth + 1; if ((float)this.diameterX / (float)this.diameterY > 4.0F || (float)this.diameterY / (float)this.diameterX > 4.0F) { this.error = this.error + "The deed would be too stretched. One edge is not allowed to be more than 4 times the length of the other."; } if (this.error.length() < 1) { int xa = Zones.safeTileX(this.tokenx - this.selectedWest); int xe = Zones.safeTileX(this.tokenx + this.selectedEast); int ya = Zones.safeTileY(this.tokeny - this.selectedNorth); int ye = Zones.safeTileY(this.tokeny + this.selectedSouth); for(int x = xa; x <= xe; ++x) { for(int y = ya; y <= ye; ++y) { boolean create = false; if (x == xa) { if (y == ya || y == ye || y % 5 == 0) { create = true; } } else if (x == xe) { if (y == ya || y == ye || y % 5 == 0) { create = true; } } else if ((y == ya || y == ye) && x % 5 == 0) { create = true; } if (create) { try { Item i = ItemFactory.createItem(671, 80.0F, this.getResponder().getName()); i.setPosXYZ((float)((x << 2) + 2), (float)((y << 2) + 2), Zones.calculateHeight((float)((x << 2) + 2), (float)((y << 2) + 2), true) + 5.0F); Zones.getZone(x, y, true).addItem(i); } catch (Exception var11) { logger.log(Level.INFO, var11.getMessage()); } } } } } this.setSize(); if (!this.checkBlockingKingdoms()) { this.error = this.error + "You would be founding too close to enemy kingdom influence."; } if (this.error.length() > 0) { this.createQuestion1(); return false; } else { this.createQuestion2(); return true; } } } Edited September 22, 2018 by Arkonick Share this post Link to post Share on other sites
Posted September 22, 2018 after reading your post again this wouldn't allow adding more than 50 in the example it would take more coding in this file but this file is where you need to do all the changes you are wanting to do. Share this post Link to post Share on other sites