[Free/Paid] Character Creation

DISCLAIMER: PLEASE READ CAREFULLY BEFORE BUY

This script is compatible with the FRP Framework in plug n play mode.

Download → Free Version (Escrowed)
Download → Open Source Version (Paid)

I spent a long time developing and refining this character creation/clothing store.

I organized all the components so that the clothing items are separated by color.

After a long period of work, I reached this result in the character creation process. It will be released for free (escrowed) for everyone using the FRP Framework, but to also compensate for all my effort and work in this character creation, I decided to release it as open-source for those who wish to purchase and adapt it to their framework or server.

The open-source version will be paid, and it cannot be distributed in any way on the internet, as this would violate the script licenses and my work; I want to prevent people from taking this code and publicly integrating it into their frameworks, which would completely undermine my work.

Below are photos and a demonstration video of how it works.

Its data-saving structure in the DB is completely different from the conventional methods used by frameworks today; I will leave the structure of the SQL file below.

SQL Code
CREATE TABLE `character_appearance` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`charId` INT(11) NULL DEFAULT NULL,
	`isMale` TINYINT(1) NULL DEFAULT '1',
	`expressions` LONGTEXT NOT NULL COLLATE 'utf8mb4_bin',
	`bodyApparatusId` INT(11) NULL DEFAULT '0',
	`bodyApparatusStyleId` INT(11) NULL DEFAULT '0',
	`headApparatusId` INT(11) NULL DEFAULT '0',
	`teethApparatusStyleId` INT(11) NULL DEFAULT '0',
	`eyesApparatusId` INT(11) NULL DEFAULT '0',
	`eyesApparatusStyleId` INT(11) NULL DEFAULT '0',
	`whistleShape` FLOAT NULL DEFAULT '0',
	`whistlePitch` FLOAT NULL DEFAULT '0',
	`whistleClarity` FLOAT NULL DEFAULT '0',
	`height` TINYINT(3) UNSIGNED NULL DEFAULT '180',
	`bodyWeightOufitType` TINYINT(3) UNSIGNED NULL DEFAULT '10',
	`bodyKindType` TINYINT(3) UNSIGNED NULL DEFAULT '1',
	PRIMARY KEY (`id`) USING BTREE,
	UNIQUE INDEX `charId` (`charId`) USING BTREE,
	CONSTRAINT `FK_character_appearance_character` FOREIGN KEY (`charId`) REFERENCES `character` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
	CONSTRAINT `expressions` CHECK (json_valid(`expressions`))
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1;

CREATE TABLE `character_appearance_customizable` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`charId` INT(11) NULL DEFAULT NULL,
	`overridePedModel` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
	`overridePedIsMale` TINYINT(1) NULL DEFAULT NULL,
	`equippedOutfitId` INT(11) NULL DEFAULT NULL,
	`hairApparatusId` INT(11) NOT NULL DEFAULT '0',
	`hairApparatusStyleId` INT(11) NOT NULL DEFAULT '0',
	`mustacheApparatusId` INT(11) NOT NULL DEFAULT '0',
	`mustacheApparatusStyleId` INT(11) NOT NULL DEFAULT '0',
	`weightPercentage` FLOAT UNSIGNED ZEROFILL NULL DEFAULT '000000000001',
	PRIMARY KEY (`id`) USING BTREE,
	UNIQUE INDEX `charId` (`charId`) USING BTREE,
	CONSTRAINT `FK_character_appearance_customizable_character` FOREIGN KEY (`charId`) REFERENCES `character` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1;

CREATE TABLE `character_appearance_overlays` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`charId` INT(11) NULL DEFAULT NULL,
	`data` LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
	PRIMARY KEY (`id`) USING BTREE,
	UNIQUE INDEX `charId` (`charId`) USING BTREE,
	CONSTRAINT `FK_character_appearance_overlays_character` FOREIGN KEY (`charId`) REFERENCES `character` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
	CONSTRAINT `data` CHECK (json_valid(`data`))
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1;

CREATE TABLE `character_appearance_overlays_customizable` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`charId` INT(11) NULL DEFAULT NULL,
	`hasFacialHair` TINYINT(1) NULL DEFAULT '0',
	`headHairStyle` INT(11) NULL DEFAULT NULL,
	`headHairOpacity` INT(11) NULL DEFAULT NULL,
	`foundationColor` INT(11) NULL DEFAULT NULL,
	`foundationOpacity` INT(11) NULL DEFAULT NULL,
	`lipstickColor` INT(11) NULL DEFAULT NULL,
	`lipstickOpacity` INT(11) NULL DEFAULT NULL,
	`facePaintColor` INT(11) NULL DEFAULT NULL,
	`facePaintOpacity` INT(11) NULL DEFAULT NULL,
	`eyeshadowColor` INT(11) NULL DEFAULT NULL,
	`eyeshadowOpacity` INT(11) NULL DEFAULT NULL,
	`eyelinerColor` INT(11) NULL DEFAULT NULL,
	`eyelinerOpacity` INT(11) NULL DEFAULT NULL,
	`eyebrowsStyle` INT(11) NULL DEFAULT NULL,
	`eyebrowsColor` INT(11) NULL DEFAULT NULL,
	`eyebrowsOpacity` INT(11) NULL DEFAULT NULL,
	`blusherStyle` INT(11) NULL DEFAULT NULL,
	`blusherColor` INT(11) NULL DEFAULT NULL,
	`blusherOpacity` INT(11) NULL DEFAULT NULL,
	PRIMARY KEY (`id`) USING BTREE,
	UNIQUE INDEX `charId` (`charId`) USING BTREE,
	CONSTRAINT `FK_character_appearance_overlays_customizable_character` FOREIGN KEY (`charId`) REFERENCES `character` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1;

CREATE TABLE `character_outfit` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`charId` INT(11) NOT NULL,
	`name` LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
	`apparels` LONGTEXT NOT NULL COLLATE 'utf8mb4_bin',
	PRIMARY KEY (`id`) USING BTREE,
	INDEX `charId` (`charId`) USING BTREE,
	CONSTRAINT `FK_character_outfit_character` FOREIGN KEY (`charId`) REFERENCES `character` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
	CONSTRAINT `apparels` CHECK (json_valid(`apparels`))
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1;

p.s.


If you are interested in adding it to your server on another framework, you will need to purchase the Open Source Version (Paid) to make your own adaptations.
Can you hire me to implement it on your server, I will be available as well, and this will have an additional cost, contact me on dm before buy.

Screenshots




Requeriments
frp_lib
frp_core
frp_creator
frp_spawn_selector

Code is accessible No
Subscription-based No
Lines (approximately) + 3000
Requirements FRP Framework
Support Yes
3 Likes

Free releases require a direct download link to a site other than Tebex, such as GitHub.


The business model you are attempting to use (free = escrow, paid = “open source”), it not permitted by the release rules.

Ohh, really? I didn’t find anything specific about this, can you show me the exact part? I will be grateful

You can find the full list of rules here.

I read this more than once.
And this was my understanding: I need to provide an external link besides Tebex. I had already done that; the script is on GitHub but escrowed.

I’m sure I’m not outside the rules.

Escrow works by granting specific users access to run your escrowed code, via KeyMaster. Simply uploading escrowed code to a site like GitHub will not work.

This rule is very confusing, and it leaves many loopholes for people to steal code that we don’t want to be tottaly freely available.

There should be a better solution for this because in this case I only have two options:
Either keep the script as paid-only, or remove it completely from the internet. I don’t want the open-source code leaking on the internet because it is intended for exclusive use with the FRP Framework.

After all, I could charge 1 cent and distribute it escrowed.
:man_shrugging:

Then do it? Rules are pretty clear

Edit: You are still making your code freely available, it just has a price tag instead of being free. Anyone wanting to leak/resell can simply purchase it. We have seen tmultiple times how most people don’t care about script licenses and even the mods here have a hard time enforcing them, so I wouldn’t count on that to protect your work

1 Like

The rules are confusing. Please review and update

Any resource, free or paid, must be immediately available.
For free resources, this means you must include a either a link to a public git repository, or upload it directly on the forums, or link to a free Tebex package if you want to distribute it through our Asset Escrow.

If there was an addendum to this, there needs to be an edit so that you don’t need to scroll down and view all the changes. From my understanding, the way this reads is that you can publish a free resource to TEBEX alone, and it does not need to also be linked to Github.

Moreover, there was an update that explicitly says that you can have free escrowed